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

PHP 项目基础环境搭建

将默认密码换成自己的密码

mysql -uroot -p

PHP 项目基础环境搭建

Enter password 后面输入上一步获取到的密码(输入内容不会显示在命令行中)

PHP 项目基础环境搭建

更换密码(密码需要足够复杂)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPasdfs4!';

退出mysql并试用新密码

mysql> quit;
mysql -uroot -p

PHP 项目基础环境搭建

输入新密码后登录成功说明密码修改成功

新增一个可远程访问的账户,方便本地使用

创建一个 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

PHP 项目基础环境搭建

编译配置,这里如果上一步的某些依赖包没有安装好,就会遇到很多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

错误

PHP 项目基础环境搭建

解决方法

cd /root
wget https://libzip.org/download/libzip-1.5.2.tar.gz

PHP 项目基础环境搭建

tar -zxf libzip-1.5.2.tar.gz
cd libzip-1.5.2
mkdir build
cd build
cmake ..

PHP 项目基础环境搭建

如果报这个错,需要先安装 cmake

yum -y install cmake

再次运行 cmake .. 提示 cmake 版本过低

PHP 项目基础环境搭建

卸载原本的 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

出现以下提示说明执行成功

PHP 项目基础环境搭建

 gmake
 gmake install

PHP 项目基础环境搭建

cd /root
cd libzip-1.5.2
cd build
/usr/local/bin/cmake ..

出现以下提示,说明安装成功
PHP 项目基础环境搭建

make && make install

出现以下提示,说明安装成功

PHP 项目基础环境搭建
再次编译 PHP

cd /root/php-7.3.6
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
....复制上面的编译命令
--with-pear \
--enable-opcache

如果报这个错

PHP 项目基础环境搭建

# 添加搜索路径到配置文件
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
# 更新配置\
ldconfig -v

安装成功后如下

PHP 项目基础环境搭建

再次编译安装 php

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
....复制上面的编译命令
--with-pear \
--enable-opcache

出现如下提示,说明命令执行成功

PHP 项目基础环境搭建

编译与安装

make && make install

耐心等待编译安装完成

PHP 项目基础环境搭建

如果碰到以上报错,说明服务器内存不足,可以增加服务器配置或者配置虚拟内存

dd if=/dev/zero of=/swap bs=1024 count=1M
mkswap /swap
swapon /swap
echo "/swap  swap  swap  sw  0  0" >> /etc/fstab

PHP 项目基础环境搭建

再次运行 make && make install 耐心等待编译安装成功

PHP 项目基础环境搭建

添加 PHP 命令到环境变量

vim /etc/profile

在末尾加入

PATH=$PATH:/usr/local/php/bin
export PATH

PHP 项目基础环境搭建

要使改动立即生效执行

source /etc/profile

查看环境变量

echo $PATH

查看php版本

php -v

PHP 项目基础环境搭建

配置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 项目基础环境搭建
启动php-fpm

/etc/init.d/php-fpm start

PHP 项目基础环境搭建

到这里 PHP 在 Linux 环境下的基础运行环境就已经搭建完成,后续有其他软件如:RedisSupervisor 等需要用到时会另开一篇博客

本作品采用《CC 协议》,转载必须注明作者和本文链接
www.haowuliaoa.com
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 10

环境这东西,折腾过一次会弄/知道怎么弄就行了。
https://oneinstack.com/
这种一键部署真的很方便

4年前 评论
WhiteDragon 4年前

@839891627 面试告诉我用一键部署的都pass了 :grin:

4年前 评论

为什么用 MySQL8?目前感觉 PHP 对 MySQL8 一点也不友好,所以一直用 5.7 呢

4年前 评论
22 (楼主) 4年前
Tricker (作者) 4年前

帮忙补充一下吧,呜呜呜

解决yum不能安装libmcrypt-devel问题:

#1.安装第三方源
$ wget http://www.atomicorp.com/installers/atomic
$ sh ./atomic
#2.使用yum命令安装
$ yum  install  php-mcrypt  libmcrypt  libmcrypt-devel
2年前 评论
xiaocao2017 (作者) 2年前

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

这几条命令执行报这个,请问是什么原因?

file

2年前 评论
22 (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!