MySQL配置 MySQL数据库远程登录设置 1 2 3 4 use mysql; update user set host = '%' where user = 'root'; select host, user from user; FLUSH PRIVILEGES;
查询后显示root账户host为%即说明接受任意IP地址登录,但是存在一定的安全风险,如果为固定IP建议单独设置。
1 2 3 4 5 6 7 8 9 +-----------+------------------+ | host | user | +-----------+------------------+ | % | root | | localhost | mysql.infoschema | | localhost | mysql.session | | localhost | mysql.sys | +-----------+------------------+ 4 rows in set (0.00 sec)
MySQL数据库配置加密方式 当MySQL版本为8.0以上时,因采用了新的加密方式,可能会导致以下问题
1 php mysqli_connect: authentication method unknown to the client [caching_sha2_password]
在MySQL Server ini File文件里可以查询到
1 2 3 4 [mysqld] default_authentication_plugin =caching_sha2_password
有两种办法解决这个问题,一种为升级PHP及插件版本,另一种为对MySQL设置及用户属性进行修改,本文采用了第二种方法。
在MySQL输入以下命令,请不要输入localhost,使用%作为代替,PASSWORD改为密码
1 2 3 use mysql; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'PASSWORD'; flush privileges;
更改完成后确认无误刷新MySQL数据库即修改成功。为了不需要每次都对用户数据进行修改,建议对MySQL配置文件进行修改以保证MySQL数据库的加密方式为默认加密方式
1 2 3 4 5 whereis my.cnf vim /etc/my.cnf ** 配置文件加入default-authentication-plugin=mysql_native_password service mysqld restart service mysqld status
显示如下内容即说明MySQL数据库配置有效,重启完成
MySQL服务配置
PHP安装及配置 警告: 通过yum方式安装的php版本为5.3,如需7.0以上版本需要手动编译并安装
PHP安装 基础支持库安装 1 2 3 4 5 6 7 8 9 10 11 12 13 yum -y install gcc yum -y install wget yum -y install make yum -y install libxml2 yum -y install libxml2-devel yum -y install openssl yum -y install openssl-devel yum -y install curl-devel yum -y install libjpeg-devel yum -y install libpng-devel yum -y install freetype-devel yum -y install bison yum -y install autoconfLoaded plugins: fastestmirror
创建用户组 添加到新系统用户php到php系统用户组,设置为将要被创建系统用户php不能用来登录系统,指定将要被创建的系统用户php的家目录为 /usr/local/php
,被创建的系统用户php不会在 /home
目录下创建 php
目录
1 2 groupadd -r php useradd -r -g php -s /sbin/nologin -d /usr/local/php -M php
下载并安装依赖及分析库 PHP语法分析器re2c 1 2 3 4 5 wget -c https://github.com/skvadrik/re2c/releases/download/0.16/re2c-0.16.tar.gz tar -zxvf re2c-0.16.tar.gz cd re2c-0.16./configure make && make install
加密支持扩展库libmcrypt 1 2 3 4 5 wget -c https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz tar -zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8./configure make && make install
加密方式扩展库mhash 1 2 3 4 5 wget -c https://downloads.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz tar -zxvf mhash-0.9.9.9.tar.gz cd mhash-0.9.9.9./configure make && make install
加密方式扩展库mcrypt 1 2 3 4 5 wget -c https://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz tar -zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8./configure LD_LIBRARY_PATH=/usr/local/lib make && make install
PHP安装包下载 1 2 wget -c https://github.com/php/php-src/archive/php-7.1.6.tar.gz tar -zxvf php-7.1.6.tar.gz
生成配置文件 1 2 cd php-src-php-7.1.6./buildconf --force
生成配置文件
配置文件生成完成后进行php编译,以下为编译选项列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ./configure \ --prefix =/usr/local/php \--exec-prefix =/usr/local/php \--bindir =/usr/local/php/bin \--sbindir =/usr/local/php/sbin \--includedir =/usr/local/php/include \--libdir =/usr/local/php/lib/php \--mandir =/usr/local/php/php/man \--with-config-file-path =/usr/local/php/etc \--with-mysql-sock =/tmp/mysql.sock \--with-mcrypt \ --with-mhash \ --with-openssl \ --with-mysqli =shared,mysqlnd \--with-pdo-mysql =shared,mysqlnd \--with-gd \ --with-iconv \ --with-zlib \ --enable-zip \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-xml \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-mbregex \ --enable-mbstring \ --enable-ftp \ --enable-gd-native-ttf \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-soap \ --without-pear \ --with-gettext \ --enable-session \ --with-curl \ --with-jpeg-dir \ --with-freetype-dir \ --enable-opcache \ --enable-fpm \ --with-fpm-user =nginx \--with-fpm-group =nginx \--without-gdbm \ --enable-fast-install \ --disable-fileinfo
编译php
编译完成后可以运行 make test
命令测试当前PHP是否支持功能,时间较长,非必须
php测试
准备完成后执行 make install
命令,系统会按照编译配置安装各项服务
php安装
PHP配置 基础文件配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 cp php.ini-production /usr/local/php/etc/php.inicp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmcp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.confcp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.confvim /etc/profile.d/php.sh ** 添加 export PATH=$PATH :/usr/local/php/bin/:/usr/local/php/sbin/ source /etc/profile.d/php.shgroupadd -r nginx useradd -r -g nginx -s /sbin/nologin -d /usr/local/nginx -M nginx mkdir -p /var/log/php-fpm/mkdir -p /var/run/php-fpmchown -R nginx:nginx /var/run/php-fpm/mkdir -p /var/lib/php/sessionchown -R nginx:nginx /var/lib/phpchmod +x /etc/init.d/php-fpmchkconfig --add php-fpm chkconfig php-fpm on
php-fpm配置 运行 chkconfig --list | grep php-fpm
命令查看php-fpm状态可见服务已经在第2到第5运行等级打开即说明成功
php-fpm服务
运行 php-fpm -t
命令查看php-fpm配置文件是否正常
运行 systemctl start php-fpm.service
命令启动服务
运行 systemctl status php-fpm.service
命令查看服务状态,如图即说明服务正常运行
php-fpm运行状态
同时你可以使用 php -v
命令查看php版本号
php版本号
php.ini配置 php插件mysqli有可能虽然在编译中配置,但仍需要手动安装,同时php文件里需要对时区、短标签进行配置
使用命令 yum install php-mysqli
进行插件的安装,使用命令 vim /usr/local/php/etc/php.ini
进入配置文件修改以下项目
1 2 3 4 5 extension =php_mysql.soshort_open_tag = On display_errors = On (调试开启此项,否则只报错500 )date.timezone = PRCextension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/"
更改完成后使用 service php-fpm reload
命令完成php.ini配置文件重载
Nginx安装及配置 Nginx安装 此方法为非编译,EPEL仓库软件包,如需最新版需手动编译,安装完成后查看服务状态即说明安装成功
1 2 3 4 5 sudo yum install epel-release sudo yum install nginx sudo systemctl enable nginx sudo systemctl start nginx sudo systemctl status nginx
nginx服务
警告: 这一步可能会产生报错,Failed to read PID,使用以下代码即可解决此问题
1 2 3 mkdir /etc/systemd/system/nginx.service.d printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf systemctl daemon-reload
Nginx配置 1 2 3 4 vim /usr/local/php/etc/php-fpm.d/www.conf ** 此两行修改为 user = nginx group = nginx
最后更新时间:2023-04-14 16:16:36