基于centos8进行测试

切换php版本

  1. ls /usr/bin/php -al //查看当前指向php版本路径
  2. rm -rf /usr/bin/php //删除当前软连接
  3. ln -s /www/server/php/74/bin/php /usr/bin/php //新建软连接

安装nginx并设置开机自启动

安装

  1. yum install nignx //安装
  2. service nginx start //启动nginx服务
  3. systemctl enable nginx.service //设置开机自启动
  4. netstat -anp |grep :80 //查看80端口监听情况

安装目录/etc/nginx
php项目存放目录(var下新建www目录)
开放端口

  1. //查看已开放的端口:
  2. firewall-cmd --list-ports
  3. //默认80端口加入防火墙访问白名单中:
  4. firewall-cmd --permanent --zone=public --add-port=80/tcp
  5. 使用命令使其生效:
  6. firewall-cmd --reload

常见问题

在www目录下新建项目,并新建index.php文件测试,访问端口,发现404并自动下载index.php文件:(编辑nginx.conf配置文件)

  1. location / {
  2. fastcgi_pass 127.0.0.1:9000;
  3. fastcgi_index index.php;
  4. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  5. fastcgi_param PATH_INFO $fastcgi_script_name;
  6. include fastcgi_params;
  7. }

安装mysql5.7.31

下载并安装MySQL

  1. [root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

  1. [root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

之后就开始安装MySQL服务器:

  1. [root@localhost ~]# yum -y install mysql-community-server

注意:这步会耗费很长时间,最好手动去中科大网站下载
http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/
下载完上传到/var/cache/dnf/mysql57-community-65b9ecb4cc6a2553/packages,这个文件夹可以使用find / -name mysql命令查看。上传完之后再次执行

  1. yum -y install mysql-community-server

MySQL数据库设置

首先启动MySQL

  1. [root@localhost ~]# systemctl start mysqld.service

查看MySQL运行状态:

  1. [root@localhost ~]# systemctl status mysqld.service

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

  1. [root@localhost ~]# grep "password" /var/log/mysqld.log

如下命令进入数据库:

  1. [root@localhost ~]# mysql -uroot -p

输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

  1. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

这里有个问题,新密码设置的时候如果设置的过于简单会报错,如果要允许设置简单密码需要修改mysql的配置。
更新mysql的语言
首先重新登录mysql,然后输入status

  1. cd /etc //进入etc目录
  2. vi my.conf //打开my.conf文件,新增4行代码

[client] default-character-set=utf8

For advice on how to change settings please see

[mysqld] #

Remove leading # and set to the amount of RAM for the most important data

cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

innodb_buffer_pool_size = 128M

#

Remove leading # to turn on a very important data integrity option: logging

changes to the binary log between backups.

log_bin

#

Remove leading # to set options mainly useful for reporting servers.

The server defaults are faster for transactions and fast SELECTs.

Adjust sizes as needed, experiment to find the optimal values.

join_buffer_size = 128M

sort_buffer_size = 2M

read_rnd_buffer_size = 2M

datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock character-set-server=utf8 collation-server=utf8_general_ci

Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

保存更改后的my.cnf文件后,重启下mysql,然后输入status再次查看,你就会发现变化啦
service mysqld restart
最终安装目录/usr/bin/mysql

安装PHP7.3

下载

  1. cd /usr/local/src
  2. # wget -O 下载并重命名为
  3. wget -O php-7.3..tar.gz http://php.net/get/php-7.3.2.tar.gz/from/a/mirror
  4. # 解压
  5. tar -xvzf php-7.3..tar.gz

配置

  1. cd php-7.3.2
  2. yum -y install libcurl-devel
  3. yum -y install libXpm-devel
  4. yum -y install libxml2-devel
  5. ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-pdo-mysql=/usr/bin/mysql --with-mysqli=/usr/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=/usr/bin/mysql --with-gd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/ --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --enable-ctype

注意:—with-pdo-mysql=/usr/bin/mysql —with-mysqli=/usr/bin/mysql_config —with-mysql-sock=/tmp/mysql.sock —with-pdo-mysql=/usr/bin/mysql这几个目录要写对。
如果提示:configure: error: jpeglib.h not found

  1. yum -y install libjpeg-turbo-devel.x86_64

如果提示:configure: error:png.h not found

  1. yum install libpng-devel

如果提示:configure: error: freetype-config not found.

  1. yum install freetype-devel

如果提示:Error: mysql_config not found

  1. cd /usr/local
  2. #下载mysql-community-devel
  3. wget https://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-devel-5.7.31-1.el7.x86_64.rpm
  4. rpm -ivh mysql-community-devel-5.7.31-1.el7.x86_64.rpm

安装完发现/usr/bin下出现了mysql_config文件,继续执行./configure命令串
如果提示:configure: error: off_t undefined; check your library configuration

  1. # 添加搜索路径到配置文件
  2. echo '/usr/local/lib64
  3. /usr/local/lib
  4. /usr/lib
  5. /usr/lib64'>>/etc/ld.so.conf
  6. # 更新配置
  7. ldconfig -v

安装

  1. make && make install
  2. #删除临时文件
  3. make clean
  4. make distclean

配置PHP

到之前编译的源码包中将 php.ini-production 复制到 /usr/local/php/php.ini

  1. cp php.ini-production /usr/local/php/php.ini

复制启动脚本

  1. cp ./sapi/fpm/init.d.php-fpm.in /etc/init.d/php-fpm
  2. chmod +x /etc/init.d/php-fpm

修改php-fpm配置文件

  1. cd /usr/local/php/etc
  2. cp php-fpm.conf.default php-fpm.conf
  3. vim php-fpm.conf

去掉pid = run/php-fpm.pid前面的分号。:wq! 保存并退出。
修改/etc/init.d/php-fpm

php_fpm_BIN=@sbindir@/php-fpm php_fpm_CONF=@sysconfdir@/php-fpm.conf php_fpm_PID=@localstatedir@/run/php-fpm.pid

改成

php_fpm_BIN=/usr/local/php/sbin/php-fpm php_fpm_CONF=/usr/local/php/etc/php-fpm.conf php_fpm_PID=/usr/local/php/var/run/php-fpm.pid

执行

  1. chmod +x /etc/init.d/php-fpm
  2. chkconfig --add php-fpm
  3. chkconfig php-fpm on

如果出现:
WARNING: Nothing matches the include pattern ‘/usr/local/php/etc/php-fpm.d/*.conf’ from /usr/local/php/etc/php-fpm.conf at line 143
执行:

  1. # cd /usr/local/php/etc/php-fpm.d/
  2. # cp www.conf.default www.conf
  3. # /usr/local/php/sbin/php-fpm -t
  4. [12-Oct-2017 08:33:29] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful
  5. [root@localhost php-fpm.d]# service php-fpm start
  6. Starting php-fpm done

建立软连接,将PHP添加到环境变量

  1. ln -s /usr/local/php/bin/php /usr/sbin/php

安装Git

  1. yum -y install git

yum安装git被安装在/usr/libexec/git-core目录

安装swoole

下载安装

  1. 1wget https://github.com/swoole/swoole-src/archive/v4.4.16.tar.gz ## 下载
  2. 2tar -zvxf v4.4.16.tar.gz ## 解压到当前目录
  3. 3cd swoole-src-4.4.16/ ## cd目录
  4. 4phpize ## 使用phpize创建php编译检测脚本 ./configure
  5. 5、./configure --with-php-config=/usr/local/php/bin/php-config --enable-openssl ## 创建编译文件,第一个--with,后面是php的安装路径/bin/php-config ,第二个--enable,是开启swoole的ssl功能
  6. 6sudo make && make install ## 编译swoole并把编译好的文件移动到php的扩展目录(前面的配置php版本的扩展目录) 需要root权限

这个时候已经安装成功,需要进入php.ini,在最后面增加上:

  1. extension=swoole.so

成功安装swoole,通过php --ri swoole查看swoole扩展的信息:

swoole

Swoole => enabled Author => Swoole Team team@swoole.com Version => 4.4.16 Built => Jan 21 2021 15:22:51 coroutine => enabled epoll => enabled eventfd => enabled signalfd => enabled cpu_affinity => enabled spinlock => enabled rwlock => enabled openssl => OpenSSL 1.1.1g FIPS 21 Apr 2020 pcre => enabled zlib => 1.2.11 mutex_timedlock => enabled pthread_barrier => enabled futex => enabled async_redis => enabled

Directive => Local Value => Master Value swoole.enable_coroutine => On => On swoole.enable_library => On => On swoole.enable_preemptive_scheduler => Off => Off swoole.display_errors => On => On swoole.use_shortname => On => On swoole.unixsock_buffer_size => 8388608 => 838860

常见问题

phpize 命令不存在

  1. yum install php-devel

Extension ‘swoole’ not present
解决:
将/usr/local/php中的php.ini文件复制到/usr/local/php/etc目录中

安装redis

安装

  1. 1.获取redis资源
  2.   wget http://download.redis.io/releases/redis-4.0.8.tar.gz
  3. 2.解压
  4.   tar xzvf redis-4.0.8.tar.gz
  5. 3.安装
  6.   cd redis-4.0.8
  7.   make
  8.   cd src
  9.   make install PREFIX=/usr/local/redis
  10. 4.移动配置文件到安装目录下
  11.   cd ../
  12.   mkdir /usr/local/redis/etc
  13.   mv redis.conf /usr/local/redis/etc
  14. 5.配置redis为后台启动
  15.   vi /usr/local/redis/etc/redis.conf //将daemonize no 改成daemonize yes
  16. 6.redis加入到开机启动
  17.   vi /etc/rc.local //在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)
  18. 7.开启redis
  19.   /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
  20. 8.redis-cli,redis-server拷贝到bin下,让redis-cli指令可以在任意目录下直接使用
  21.   cp /usr/local/redis/bin/redis-server /usr/local/bin/
  22.   cp /usr/local/redis/bin/redis-cli /usr/local/bin/

设置redis密码

a.运行命令:redis-cli
b.查看现有的redis密码(可选操作,可以没有)
运行命令:config get requirepass 如果没有设置过密码的话运行结果会如下图所示
c.设置redis密码
运行命令:config set requirepass ****(为你要设置的密码),设置成功的话会返回‘OK’字样
d.测试连接
重启redis服务
//(redis-cli -h 127.0.0.1 -p 6379 -a
为你设置的密码))
输入 redis-cli 进入命令模式,使用 auth ‘*
‘ (**为你设置的密码)登录

修改linux环境变量

该方法是修改系统环境配置文件,需要管理员权限或者对该文件的写入权限:

  1. # 如果/etc/bashrc文件不可编辑,需要修改为可编辑
  2. chmod -v u+w /etc/environment
  3. vim /etc/profile
  4. # 在最后一行加上
  5. export PATH=$PATH:/home/uusama/mysql/bin

注意事项:

  • 生效时间:新开终端生效,或者手动source /etc/environment生效
  • 生效期限:永久有效
  • 生效范围:对所有用户有效