ocal/mysql-5.6.42/data \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_INNODB_MEMCACHED=1 \
-DWITH_DEBUG=OFF \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=ON \
-DMYSQL_MAINTAINER_MODE=OFF \
-DMYSQL_TCP_PORT=3306
make && make install
MySQL配置
cd /usr/local/mysql-5.6.42
chown mysql.mysql /usr/local/mysql-5.6.42/data
mkdir tmp
chown mysql.mysql /usr/local/mysql-5.6.42/tmp
rm -f /etc/my.cnf
cp support-files/my-default.cnf /etc/my.cnf
scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
加入守护进程
cd /usr/local
ln -s mysql-5.6.42 mysql
cd /usr/local/mysql
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
配置环境变量
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile
启动MySQL
service mysqld start
mysql -u root -p #第一次登陆不需要密码,回车即可
set password for root@localhost = password('root'); #修改密码
安装PHP
安装依赖
sudo yum install gcc gcc-c++ zip unzip libxml2 libxml2-devel curl-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd-devel bzip2 bzip2-devel
编译安装PHP
cd /usr/src
wget http://hk1.php.net/get/php-7.2.12.tar.gz/from/this/mirror -O php-7.2.12.tar.gz
tar zxvf php-7.2.12.tar.gz
cd php-7.2.12
./configure \
--prefix=/usr/local/php-7.2.12 \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-zlib \
--enable-mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock \
--with-gd \
--with-png-dir \
--with-jpeg-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-openssl \
--with-curl \
--enable-bcmath \
--enable-mbstring \
--enable-static \
--enable-zip \
--enable-sockets \
--enable-xml
make && make install
PHP配置
cd /usr/local
ln -s php-7.2.12 php
cp /usr/src/php-7.2.12/php.ini-development /usr/local/php-7.2.12/lib/php.ini
vim /usr/local/php/lib/php.ini
date.timezone = PRC # 修改时区(大约在932行)
expose_php = Off # 避免PHP信息暴露在http头中(大约369行)
display_errors = Off# 生产环境设置为off,开发环境就设置为On,便于调试
说明:设置了dispaly_errors为off后,需要在php-fpm.conf中开启错误日志记录路径error_log = log/php-fpm.log
cd php
cp etc/php-fpm.conf.default etc/php-fpm.conf
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
# 管理PHP-FPM
vim /usr/local/php/etc/php-fpm.conf
pid = run/php-fpm.pid
error_log = log/php-fpm.log #24行这个在php.ini设置display_errors = Off时启用
向进程发送信号,就可以完成进程管理
停止: kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
平滑停止: kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`
重启:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
重新打开日志:kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid`
如果在编译PHP时指定了--with-mysql=mysqlnd和--with-pdo-mysql=mysqlnd的参数,那么在生产中可能会遇到socket连接问题,解决办法是在php.ini里加入命令: pdo_mysql.default_socket=/usr/local/mysql/tmp/mysql.sock
最好是在编译PHP的时候,指定mysql.socket的位置:
--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock
配置环境变量
vim /etc/profile
export PATH=/usr/local/php/bin:$PATH
source /etc/profile
配置开机自启
vim /etc/rc.local
# PHP-FPM自动启动
/