最近一时兴起弄了个虚拟机来玩,磕磕碰碰终于搭好了环境,分享一下自己的搭建环境方法,源码搭建还是很麻烦的,很多人的环境不同可能会遇到各种问题,这里分享两种方式,第一种源码安装, 文章结尾有个懒人一键安装版,嫌源码麻烦的朋友可以直接跳到文章末尾。
我们先说源码安装:走你!
安装包
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 gcc gcc++ autoconf
去官网下载源码包
然后吧文件穿上服务器 或者 复制下载链接 直接 wget url
tar -zxvf ....tar.gz 解压
然后解压 cd 进去
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/config/nginx.conf --error-log-path=/usr/local/nginx/logs/error.log --pid-path=/usr/local/nginx/logs/nginx.pid --http-log-path=/usr/local/nginx/logs/access.log
--prefix nginx安装路径
--conf-path 配置文件存放路径
--sbin-path 路径 ,之后用于启动nginx
。。。。等等
configure 执行完后
执行
make && make install
到这里就安装完成了
然后配置nginx服务
vi /lib/systemd/system/nginx.service
创建这个文件加入以下内容 ( 因为是源码安装系统不会自动创建)
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
设置开机自启动
systemctl enable nginx.service
编辑nginx.conf
开启错误日志 和 pid
log_format 是记录http 请求信息 存到access.log里面 格式如红框里面
然后把nginx 加入环境变量
vi ~/.bashrc
在后面加一行这个 我这里面是配好了的每个路径之间用 : 隔开
OK nginx 装好了 !!
先卸载mariadb mysql
rpm -qa | grep mariadb
cat /etc/redhat-release 可以查看自己的linux版本
先下载rpm 包
wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
然后执行安装
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
安装完之后 这里多了两个文件,第二个文件记录了mysql 源信息
然后yum安装mysql
yum install mysql-community-server
安装完成!
启动服务
systemctl start mysqld
开机自启动
systemctl enable mysqld
systemctl daemon-reload
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
grep 'temporary password' /var/log/mysqld.log
然后用上图密码进入mysql mysql -uroot -p
修改密码
set password for 'root'@'localhost'=password('123456');
set global validate_password_policy=0;
set global validate_password_length=1;
我设置一个长度为6密码
set password for 'root'@'localhost'=password('123456'); 这样自己用起来很方便
退出mysql ; 执行下面两条命令
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld.service
然后开放授权root用户开发授权
重新连接mysql mysql -uroot -p...
给root 用户授权 当前你也可以选择创建其他用户,这里不多说
GRANT ALL privileges ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
OK ,mysql 搞定!
老套路
去官网 php.net 下载源码包
然后上传 源码包
tar -zxvf php....tar.gz 解压
装完之后开始安装PHP
然后
cd php-7.2.9
./configure --prefix=/usr/local/php7 --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --enable-pdo --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache
/usr/local/php7 这是我选择的安装路径,自己喜欢,--enable-fpm --enable-pdo 启用PHP-FPM 开启PDO扩展
configure 执行完之后 make && make install
php启动文件是放在bin 目录里面的 ,吧php加入全局
vi ~/.bashrc 在后面加入
echo $PATH 可以查看自己的环境变量
完成后 php-v 查看 查看版本
这时候 php 已经装上了 但是有些配置要做
php -i | grep php.ini 查看php.ini 文件位置只想路径
然后在源码包里面找到 php.ini-development 文件
cp到安装目录里面的 此目录里面去 改名成php.ini
cp /home/php-7.2.9/php.ini-development /usr/local/php7/lib/php.ini
再次查看
然后简单配置一下
cd /usr/local/php7/etc
cp php-fpm.conf.default php-fpm.conf
vi php-fpm.conf 这里根据你自己的安装路径来
保存并退出
cd /php-fpm.d
cp www.conf.default www.conf
然后编辑 vi www.conf
保存退出即可
最后把php-fpm 加入systemctl 服务
cd /usr/lib/systemd/system
vi php-fpm.service
加入以下内容 注意红色部分自己的安装路径
[Unit]
Description=php-fpm
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/usr/local/php7/var/run/php-fpm.pid
ExecStart=/usr/local/php7/sbin/php-fpm -R
ExecReload=/bin/kill -USR2 MAINPIDExecStop=/bin/kill?INTMAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存并退出
systemctl daemon-reload
systemctl enable php-fpm.service 开机启动
systemctl start php-fpom
基本环境大功告成!!(PS:搭建项目的时候记得让nginx 支持php-fpm)
有什么不对的地方,或者建议欢迎大家提出来,:)
最后懒人一键安装,请看大牛写的 脚本
https://oneinstack.com/install/