Linux 环境下 PHP 项目基础运行环境搭建(PHP 7.3.6 + MySQL 8.0.16 + Nginx)
更新系统软件
yum update
安装 nginx
安装nginx源
yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装nginx
yum install nginx
启动nginx
systemctl start nginx.service
安装 MySQL 8
安装mysql源
yum localinstall http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
安装 mysql
yum install mysql-community-server
启动mysql
systemctl start mysqld.service
获取mysql默认生成的密码(图中红框处就是密码)
grep 'temporary password' /var/log/mysqld.log
将默认密码换成自己的密码
mysql -uroot -p
Enter password 后面输入上一步获取到的密码(输入内容不会显示在命令行中)
更换密码(密码需要足够复杂)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPasdfs4!';
退出mysql并试用新密码
mysql> quit;
mysql -uroot -p
输入新密码后登录成功说明密码修改成功
新增一个可远程访问的账户,方便本地使用
创建一个 test 用户
CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'u123&&456JE$';
编译安装 php
下载最新版 php7 源码包
cd /root & wget -O php7.tar.gz https://www.php.net/distributions/php-7.3.6.tar.gz
解压源码包
tar -xvf php7.tar.gz
进入解压目录
cd php-7.3.6
安装php依赖包
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
编译配置,这里如果上一步的某些依赖包没有安装好,就会遇到很多configure error,安装上相关软件开发包即可
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache
错误
解决方法
cd /root
wget https://libzip.org/download/libzip-1.5.2.tar.gz
tar -zxf libzip-1.5.2.tar.gz
cd libzip-1.5.2
mkdir build
cd build
cmake ..
如果报这个错,需要先安装 cmake
yum -y install cmake
再次运行 cmake ..
提示 cmake 版本过低
卸载原本的 cmake
yum remove cmake
重新安装 cmake
cd /root
wget https://cmake.org/files/v3.11/cmake-3.11.4.tar.gz
tar xzvf cmake-3.11.4.tar.gz
cd cmake-3.11.4
yum install -y gcc-c++
./bootstrap
出现以下提示说明执行成功
gmake
gmake install
cd /root
cd libzip-1.5.2
cd build
/usr/local/bin/cmake ..
出现以下提示,说明安装成功
make && make install
出现以下提示,说明安装成功
再次编译 PHP
cd /root/php-7.3.6
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
....复制上面的编译命令
--with-pear \
--enable-opcache
如果报这个错
# 添加搜索路径到配置文件
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
# 更新配置\
ldconfig -v
安装成功后如下
再次编译安装 php
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
....复制上面的编译命令
--with-pear \
--enable-opcache
出现如下提示,说明命令执行成功
编译与安装
make && make install
耐心等待编译安装完成
如果碰到以上报错,说明服务器内存不足,可以增加服务器配置或者配置虚拟内存
dd if=/dev/zero of=/swap bs=1024 count=1M
mkswap /swap
swapon /swap
echo "/swap swap swap sw 0 0" >> /etc/fstab
再次运行 make && make install
耐心等待编译安装成功
添加 PHP 命令到环境变量
vim /etc/profile
在末尾加入
PATH=$PATH:/usr/local/php/bin
export PATH
要使改动立即生效执行
source /etc/profile
查看环境变量
echo $PATH
查看php版本
php -v
配置php-fpm
cp php.ini-production /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
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
启动php-fpm
/etc/init.d/php-fpm start
到这里 PHP 在 Linux 环境下的基础运行环境就已经搭建完成,后续有其他软件如:Redis
、Supervisor
等需要用到时会另开一篇博客
本作品采用《CC 协议》,转载必须注明作者和本文链接
环境这东西,折腾过一次会弄/知道怎么弄就行了。
https://oneinstack.com/
这种一键部署真的很方便
@839891627 面试告诉我用一键部署的都pass了 :grin:
为什么用 MySQL8?目前感觉 PHP 对 MySQL8 一点也不友好,所以一直用 5.7 呢
帮忙补充一下吧,呜呜呜
解决yum不能安装libmcrypt-devel问题:
cp php.ini-production /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 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm
这几条命令执行报这个,请问是什么原因?