当前位置: 代码迷 >> 综合 >> centos7 安装php nginx redis mysql phpredis 中备忘录
  详细解决方案

centos7 安装php nginx redis mysql phpredis 中备忘录

热度:48   发布时间:2023-10-18 08:38:37.0

NGINX

./configure
 
make
 
make install

开机自启动
 第一:vim /lib/systemd/system/nginx.service  内容如下:
[Unit]
#描述服务
Description=nginx
#描述服务类别
After=network.target
 
#服务运行参数的设置,注意【Service】的启动、重启、停止命令都要用绝对路径
[Service]
#后台运行的形式
Type=forking
#服务具体运行的命令
ExecStart=/usr/local/nginx/sbin/nginx
#重启命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload
#停止命令
ExecStop=/usr/local/nginx/sbin/nginx -s quit
#表示给服务分配独立的临时空间
PrivateTmp=true
 
#运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
[Install]
WantedBy=multi-user.target

第二: 执行命令 systemctl enable nginx.service 

额外指令:
nginx其他命令:
systemctl start nginx.service (启动nginx服务)
systemctl stop nginx.service (停止nginx服务)
systemctl enable nginx.service (设置开机自启动)
systemctl disable nginx.service (停止开机自启动)
systemctl status nginx.service (查看服务当前状态)
systemctl restart nginx.service (重新启动服务)
systemctl list-units --type=service (查看所有已启动的服务)

杀掉80端口号指令: fuser -k 80/tcp


在启动nginx时,报错误, nginx 未找到此命令  base: command not found

安装的linux版本为centos 7

经在网上查询后,找到答案,记录一下以后备查

需要把nginx所在的目录加入系统变量中

vi /etc/profile

在文件最后中添加

PATH=$PATH: /usr/local/nginx/sbin/nginx

export PATH

保存并退出

执行source /etc/profile 使配置文件生效后,即可.


MYSQL

https://dev.mysql.com/downloads/mysql/5.7.html  选中 linux Generic 即可
先本地下载 ,下载很慢,使用迅雷下载,直接满速下载,芜湖
链接:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar  解压之后 拿里面的一个非test的压缩包 上传至服务器

groupadd mysql
useradd -r -g mysql mysql


chown -R mysql:mysql /usr/local/mysql57
chmod -R 755 /usr/local/mysql57

这里指定了 mysql 用户

./mysqld --initialize --user=mysql --datadir=/usr/local/mysql57/data --basedir=/usr/local/mysql57


出现 :2022-04-21T02:53:25.673761Z 1 [Note] A temporary password is generated for root@localhost: f?FWdgp0trf)

vim /etc/my.cnf

[mysqld]
datadir=/usr/local/mysql57/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为
lower_case_table_names=1

mysql command not found
添加快捷:ln -s /usr/local/mysql57/bin/mysql /usr/bin

ln -s /usr/local/mysql57/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql57/bin/mysql 
//重启mysql服务
service mysql restart


————————————————

//开机启动
//将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql57/support-files/mysql.server /etc/init.d/mysqld
//赋予可执行权限
chmod +x /etc/init.d/mysqld
//添加服务
chkconfig --add mysqld
//显示服务列表
chkconfig --list


远程连接数据库
要修改数据库用户表数据执行mysql指令 
update user set user.Host='%' where user.User='root';
重启mysql

添加端口

//开放3306端口命令
firewall-cmd --zone=public --add-port=3306/tcp --permanent
//配置立即生效
firewall-cmd --reload

额外指令:
开启防火墙命令
systemctl start firewalld

关闭防火墙命令
systemctl stop firewalld

systemctl unmask firewalld

systemctl status firewalld


虚拟机开启80端口
1、firewalld的基本使用
启动: systemctl start firewalld

查看状态: systemctl status firewalld / firewall-cmd --state 这个命令也可以,只是信息会简单点

停止: systemctl disable firewalld

禁用: systemctl stop firewalld

怎么开启一个端口
添加

firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)

添加端口外部访问权限(这样外部才能访问)
firewall-cmd --add-port=80/tcp

重新载入,添加端口后重新载入才能起作用

firewall-cmd --reload

这些之后,端口是开启成功的,如果没有成功,重启系统试试。

查看端口

firewall-cmd --zone=public --query-port=80/tcp

删除端口

firewall-cmd --zone=public --remove-port=80/tcp --permanent

查看firewall是否运行,下面两个命令都可以

systemctl status firewalld

firewall-cmd --state

查看当前开了哪些端口
其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件。

查看开启了哪些服务

firewall-cmd --list-services

查看开启了哪些端口

firewall-cmd --list-ports

查看还有哪些服务可以打开

firewall-cmd --get-services

查看所有打开的端口:

firewall-cmd --zone=public --list-ports

更新防火墙规则:

firewall-cmd --reload

查看端口访问权限情况
firewall-cmd --query-port=6379/tcp

添加端口外部访问权限
firewall-cmd --add-port=6379/tcp
————————————————

//修改mysql 密码
set password for root@localhost = password('12345678');

PHP

./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysql --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-sockets --enable-sysvsem --enable-xml --enable-zip

PHP 7.1的编译
  ./configure --prefix=/usr/local/php7.1 --with-config-file-path=/usr/local/php7.1/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --with-mcrypt --with-libmbfl --enable-ftp --with-gd --enable-gd-jis-conv --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-pear --enable-maintainer-zts --with-ldap=shared --without-gdbm


php 7.4的编译
  ./configure --prefix=/usr/local/php7.4 --with-config-file-path=/usr/local/php7.4/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --with-mcrypt --with-libmbfl --enable-ftp --with-gd --enable-gd-jis-conv --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-pear --enable-maintainer-zts --with-ldap=shared --without-gdbm

make & make install


额外


默认:
cp php.ini-production /usr/local/php/etc/php.ini

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

//php解压包位置
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod +x /etc/init.d/php-fpm

例子php7.4:
cp /usr/local/php-7.4.28/php.ini-production /usr/local/php7.4/etc/php.ini

cp /usr/local/php7.4/etc/php-fpm.conf.default /usr/local/php7.4/etc/php-fpm.conf

cp /usr/local/php7.4/etc/php-fpm.d/www.conf.default /usr/local/php7.4/etc/php-fpm.d/www.conf

//php解压包位置
cp /usr/local/php-7.4.28/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm-7.4

chmod +x /etc/init.d/php-fpm-7.4

php-fpm的启动、停止和重启:

service php-fpm start  #启动

service php-fpm stop   #停止

service php-fpm restart #重启
————————————————

添加执行权限


chmod a+x /etc/init.d/php-fpm

#chmod a+x /etc/init.d/php-fpm-7.4

加入服务


chkconfig --add php-fpm
#chkconfig --add php-fpm-7.4

开机自启


chkconfig php-fpm on
#chkconfig php-fpm-7.4 on

查看服务列表:


chkconfig --list

位置:/usr/local/php


REDIS


wget https://download.redis.io/releases/redis-4.0.9.tar.gz

make

make install PREFIX=/usr/local/redis4.0.9

一般把配置文件放至到 /etc/redis/6379.conf  具体参考 /usr/local/redis-4.0.9/utils/redis_init_script 指令中的配置,可类似进行修改(进行比照参考)

开机启动 
第一步:
复制redis 解压包中的脚本文件redis_init_script  (记得修改脚本中目录位置) 至 /etc/init.d/redisd   如:cp /usr/local/redis-4.0.9/utils/redis_init_script  /etc/redis-4.0.9/redisd
文件位置 /usr/local/redis-4.0.9/utils/redis_init_script  
第二步:
#设置为开机自启动服务器
chkconfig redisd on
#打开服务
service redisd start
#关闭服务
service redisd stop

额外:
设置为开机自启动,直接配置开启自启动 chkconfig redisd on 
发现错误: service redisd does not support chkconfig
解决办法,在启动脚本开头添加如下注释来修改运行级别:
#!/bin/sh
# chkconfig:   2345 90 10

service redisd stop 
出现:
Stopping ...
(error) NOAUTH Authentication required.
Waiting for Redis to shutdown ...

其实是我们的配置文件中给redis 赋值了密码  那么脚本中也要增加密码
编辑文件:/etc/redis-4.0.9/redisd
在里面 找到else 中对应位置 增加如下 即可
$CLIEXEC -a "redis配置中的密码" -p $REDISPORT shutdown


PHPREDIS
菜鸟教程:
$ wget https://github.com/phpredis/phpredis/archive/3.1.4.tar.gz
$ tar zxvf 3.1.4.tar.gz                  # 解压
$ cd phpredis-3.1.4                      # 进入 phpredis 目录
$ /usr/local/php/bin/phpize              # php安装后的路径
$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ make && make install

修改php.ini文件
vi /usr/local/php/lib/php.ini
增加如下内容:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626"
extension=redis.so

我的安装:
phpredis 5.3.7版--- github 突然打不开, 只好使用gitee下载zip
上传至虚拟机
将文件解压至 /usr/local/phpredis-5.3.7

模仿菜鸟教程即可:
第一步 : 先将目录切换到解压包的目录   cd /usr/local/phpredis-5.3.7  
第二步 :生成configure[执行对应php版本的指令--每个解压目录只能安装一次,php7.4的指令:/usr/local/php7.4/bin/phpize]    执行指令/usr/local/php/bin/phpize
可能会遇到问题:Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
解决方案:yum install autoconf
只要记住一点,报什么错误就解决什么错误就行  

第三步 初始化  ./configure --with-php-config=/usr/local/php/bin/php-config  (./configure --with-php-config=/usr/local/php7.4/bin/php-config)
第四步:make 
第五步:make install  
这一步 最后返回:Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20160303/
这里可以复制这个路径 第七步会使用,如果不复制也问题不大,一般都是在我们安装php的目录下的lib/extensions/  在这个目录下可以找到"no-debug-zts-20160303"类似的名字 就是php扩展包的位置

第六步:修改配置php.ini  具体可以通过查看phpinfo()  安装php7.1的配置目录在/usr/local/php/etc/php.ini
第七步:增加配置内容
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20160303"
extension=redis.so


MONGODB  
https://www.mongodb.com/try/download/community  
下载 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.8.tgz
解压文件 得到mongodb-linux-x86_64-rhel70-5.0.8 目录 修改目录名为mongodb5.0.8
然后执行指令:export PATH=/usr/local/mongodb5.0.8/bin:$PATH

问题:mongodb版本大于5的 需要cpu支持avx  我的计算机不支持 所以无法启动

重新下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.13.tgz
解压文件 得到mongodb-linux-x86_64-rhel70-4.4.13 目录 修改目录名为mongodb4.4.13
然后执行指令:export PATH=/usr/local/mongodb4.4.13/bin:$PATH

php-mongodb:
mongodb 的编译安装与phpredis 相似

或者如果是php版本为(version >= 7.2.0, version <= 8.99.99)
执行:/usr/local/php7.4/bin/pecl install mongodb 

/usr/local/mongodb4.4.13/etc/mongodb.conf 
内容如下:

#可外部访问
bind_ip=0.0.0.0
#端?
port = 27017
# 数据库?件存放路径
dbpath = /var/lib/mongo
# ???件存放路径
logpath = /var/log/mongodb/mongodb.log
# 使?追加的?式写?志
logappend = true
# 以守护进程的?式运?,创建服务器进程
fork = true
# 最?同时连接数
maxConns = 1000
# 不启?验证
noauth = true
# 每次写?会记录?条操作?志(通过journal可以重新构造出写?的数据)。
journal = true


启动指令:
 /usr/local/mongodb4.4.13/bin/mongod --config /usr/local/mongodb4.4.13/etc/mongodb.conf

 这是直接连接 mongodb
/usr/local/mongodb4.4.13/bin/mongo


添加开机启动
vi /etc/profile

在文件最后中添加

PATH=$PATH:/usr/local/mongodb4.4.13/bin/

export PATH

保存并退出

执行source /etc/profile 使配置文件生效后,即可.


使?system管理mongo服务设置开机启动
?先创建mongodb.service?件,并编辑
vim /lib/systemd/system/mongodb.service
添加如下内容:

[Unit]  
Description=mongodb   
After=network.target remote-fs.target nss-lookup.target  
[Service]  
Type=forking  
ExecStart=/usr/local/mongodb4.4.13/bin/mongod --config /usr/local/mongodb4.4.13/etc/mongodb.conf 
ExecReload=/bin/kill -s HUP $MAINPID  
ExecStop=/usr/local/mongodb4.4.13/bin/mongod  --shutdown --config  /usr/local/mongodb4.4.13/etc/mongodb.conf 
PrivateTmp=true  
[Install]  
WantedBy=multi-user.target 

启动服务
systemctl start mongodb.service    
关闭服务
systemctl stop mongodb.service    
开机启动
systemctl enable mongodb.service


 

  相关解决方案