php环境搭建(需编译安装)

11 篇文章 0 订阅
7 篇文章 0 订阅

以下是我遇到坑,又解决的过程

借鉴某位大佬,原文:LNMP环境搭建哈哈

一、安装前

  1. 更新系统软件:

yum update
在这里插入图片描述

  1. 查看是否已安装wget:

rpm -qa wget

否则安装:

yum install wget
在这里插入图片描述

  1. 查看是否已安装编译器:

rpm -qa gcc

否则安装:

yum install gcc gcc-c++
在这里插入图片描述

二、安装Nginx

  1. 安装nginx依赖包

nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法:

yum -y install pcre pcre-devel
在这里插入图片描述

nginx的各种模块中需要使用gzip压缩:

yum -y install zlib zlib-devel
在这里插入图片描述

安全套接字层密码库:

yum -y install openssl openssl-devel

  1. 下载nginx包并解压(到/usr/local/src目录中)

cd /usr/local/src

wget http://nginx.org/download/nginx-1.12.2.tar.gz

tar -zxvf nginx-1.12.2.tar.gz
在这里插入图片描述

  1. 编译安装(到/usr/local/nginx目录中)

cd nginx-1.12.2
./configure --prefix=/usr/local/nginx
在这里插入图片描述
make
在这里插入图片描述
make install
在这里插入图片描述

  1. 创建并设置nginx运行账号:

groupadd nginx
在这里插入图片描述
useradd -M -g nginx -s /sbin/nologin nginx
在这里插入图片描述

cd /usr/local/nginx/conf

vi nginx.conf,设置user参数如下:

user nginx nginx
在这里插入图片描述

其他配置参数暂时无需改动。

  1. 设置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 -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

在这里插入图片描述
在这里插入图片描述

  1. 设置nginx开机自启动

systemctl enable nginx.service
在这里插入图片描述

  1. 开启nginx服务:

systemctl start nginx.service
在这里插入图片描述

查看nginx是否启动成功:

ps aux | grep nginx
在这里插入图片描述
在虚拟机浏览器中访问测试:(我没有装图形化的镜像,不能展示,借用大佬的)

http://localhost

出现以下界面则表示可以成功访问:
在这里插入图片描述

  1. 防火墙开放80端口(nginx默认使用80端口,可在nginx.conf中配置,若无需进行远程访问则不需要开放端口)

永久开放80端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent
在这里插入图片描述

重启防火墙:

firewall-cmd --reload
在这里插入图片描述

查看防火墙开启状态:

systemctl status firewalld
在这里插入图片描述

查看80端口是否开放成功:

firewall-cmd --zone=public --query-port=80/tcp
在这里插入图片描述
可在windows宿主主机浏览器直接访问虚拟机ip测试是否可以成功访问。

三、安装Mysql

  1. 卸载已有mysql

查看是否已安装mysql:

rpm -qa mysql

有则卸载:

rpm -e --nodeps 文件名称

是否存在与mysql相关的文件或目录:

whereis mysql

是则删除。

查看是否存在mariadb:

rpm -qa | grep mariadb

存在则卸载:

rpm -e --nodeps 文件名 //文件名是上一个命令查询结果

rpm -qa | grep my.cnf,查看是否存在my.cnf

存在/etc/my.cnf,则需要先删除:(我这边都不存在哈)

rm /etc/my.cnf
在这里插入图片描述

  1. 安装编译mysql需要的依赖包

yum install libevent* libtool* autoconf* libstd* ncurse* bison* openssl*
在这里插入图片描述

  1. 安装cmake(mysql5.5之后需要用cmake支持编译安装)

查看是否已安装cmake:

rpm -qa cmake
在这里插入图片描述

没有则下载编译安装:

cd /usr/local/src

wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz
在这里插入图片描述
tar -xf cmake-2.8.12.1.tar.gz

cd cmake-2.8.12.1

./configure
在这里插入图片描述

make
在这里插入图片描述

make install
在这里插入图片描述

检查cmake是否安装成功:

cmake --version
在这里插入图片描述

  1. 下载mysql包并解压(到/usr/local/src目录)

4.1 这边有遇到坑到解决的过程,正确的看下面

cd /usr/local/src

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.38.tar.gz(大佬的mysql-5.6.38下载不了,我重新找了个,注意要下载linux版本的,我这个是Windows版本,后面会发现编译不了)

https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.45.tar.gz(这是linux版本,正确的)
在这里插入图片描述

tar -zxvf mysql-5.6.38.tar.gz   /   unzip -o mysql-5.6.45-winx64.zip -d src/    (总结一下tar -zxvf 包名.gz 或 unzip -o 包名.zip -d src/(创建新的解压后的存放目录src))
在这里插入图片描述

没有这个命令,下载安装一下yum install -y unzip zip
在这里插入图片描述

  1. 编译安装(到/usr/local/mysql目录)

5.1 这边有遇到坑到解决的过程,正确的看下面

cd mysql-5.6.38

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
在这里插入图片描述
遇到坑了,解决一下

编译失败了,因为是Windows版本,所以编译不了,这边重新找了linux版本,https://dev.mysql.com/downloads/mysql/5.6.html#downloads
在这里插入图片描述

复制下载压缩包的地址,https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.45.tar.gz
在这里插入图片描述

  1. 下载mysql包并解压(到/usr/local/src目录)

4.1 这边是正确的

https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.45.tar.gz
在这里插入图片描述
tar -zxvf mysql-5.6.45.tar.gz
在这里插入图片描述
重新编译安装

  1. 编译安装(到/usr/local/mysql目录)

5.1 这边是正确的

cd mysql-5.6.45

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
在这里插入图片描述
make(此过程需花费大概20-30分钟)
在这里插入图片描述
make install
在这里插入图片描述

  1. 配置mysql

groupadd mysql
在这里插入图片描述

useradd -M -g mysql -s /sbin/nologin mysql
在这里插入图片描述

chown -R mysql:mysql /usr/local/mysql
在这里插入图片描述

  1. 初始化配置

cd /usr/local/mysql/scripts

./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
在这里插入图片描述

  1. 设置mysql为系统服务

vim /lib/systemd/system/mysql.service

文件内容:

[Unit]

Description=mysql

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/mysql/support-files/mysql.server start

ExecStop=/usr/local/mysql/support-files/mysql.server stop

ExecRestart=/usr/local/mysql/support-files/mysql.server restart

ExecReload=/usr/local/mysql/support-files/mysql.server reload

PrivateTmp=true

[Install]

WantedBy=multi-user.target

在这里插入图片描述

  1. 设置mysql服务开机自启动

systemctl enable mysql.service
在这里插入图片描述

  1. 启动mysql

systemctl start mysql.service

若是启动失败:
在这里插入图片描述
直接使用/usr/local/mysql/support-files/mysql.server restart启动可以看到详细错误原因:
在这里插入图片描述
若是这个原因,/var/lib/mysql这个目录(用于存放mysql.sock)不存在的话,手动创建就好了:

mkdir /var/lib/mysql
在这里插入图片描述
chown -R mysql:mysql /var/lib/mysql
在这里插入图片描述
再次启动,成功了!

systemctl start mysql.service

systemctl status mysql.service
在这里插入图片描述
查看是否启动成功:

ps aux | grep mysql
在这里插入图片描述
11. 登录mysql并设置root密码:(大佬给的思路,但是不知道为什么我密码重置不了)

/usr/local/mysql/bin/mysql -u root

set password=password(‘123456’);
在这里插入图片描述
四、安装PHP

  1. 安装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
在这里插入图片描述
若提示yum中没有可用的软件包libmcrypt和libmcrypt-devel,则需要手动编译安装,可以先在windows宿主主机中前往libmcrypt官网下载然后使用rz指令将包上传至centos7进行编译安装。我下载的包为libmcrypt-2.5.8.tar.gz:

我这边就是提示安装不了,所以手动下载到本地,再移动
在这里插入图片描述
在这里插入图片描述
tar -zxvf libmcrypt-2.5.8.tar.gz
在这里插入图片描述

cd libmcrypt-2.5.8

./configure --prefix=/usr/local/libmcrypt
在这里插入图片描述
make
在这里插入图片描述
make install
在这里插入图片描述

  1. 下载php包并解压

cd /usr/local/src

在windows上前往php官网下载php-7.2.0包,然后使用rz指令将下载好的php安装包上传到centos7上,解压:

又是下载到本地再移过来的
在这里插入图片描述
tar -zxvf php-7.2.0.tar.gz
在这里插入图片描述

  1. 编译安装(到/usr/local/php目录)

cd php-7.2.0

./configure --prefix=/usr/local/php --disable-fileinfo --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --enable-zip --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --without-pear --enable-bcmath
在这里插入图片描述
(注意:–with-mcrypt参数指定的是libmcrypt的安装目录。Php7不再使用mysql的库来支持mysql的连接,而是启用了mysqlnd来支持,所以php7的编译已经不再使用–with-mysql参数指定mysql的安装位置了,若想支持mysql,需要设置–enable-mysqlnd、–with-mysqli和–with-pdo-mysql=mysqlnd参数,–with-mysql-sock指定的是编译mysql时-DMYSQL_UNIX_ADDR参数指定的文件)

这边的注意是怎么回事呢
在这里插入图片描述
make(此过程需花费大概20分钟)
在这里插入图片描述
make install
在这里插入图片描述

  1. 将php包解压目录中的配置文件放置到正确位置(configure命令中的–with-config-file-path设置的位置)

cp php.ini-development /etc/php.ini
在这里插入图片描述

  1. 创建并设置php-fpm运行账号

groupadd www-data

useradd -M -g www-data -s /sbin/nologin www-data

cd /usr/local/php/etc

cp php-fpm.conf.default php-fpm.conf
在这里插入图片描述
vi php-fpm.conf
在这里插入图片描述
发现搜索不到“user”(设置运行账号的位置),但发现文件的最后一行:
在这里插入图片描述
所以:

cd php-fpm.d

cp www.conf.default www.conf(否则include匹配不到文件)

vi www.conf

搜索“user”设置运行账号:

user=www-data

group=www-data
在这里插入图片描述
在这里插入图片描述

  1. 配置nginx支持php

vim /usr/local/nginx/conf/nginx.conf
在这里插入图片描述
在这里插入图片描述

修改完成之后记得重启nginx服务:

systemctl start nginx.service
在这里插入图片描述
启动不了找原因
在这里插入图片描述
因为文件里面少这一行
在这里插入图片描述
重新启动成功
在这里插入图片描述

  1. 设置php-fpm为系统服务:

vi /etc/systemd/system/php-fpm.service

文件内容:

[Unit]

Description=php-fpm

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/php/sbin/php-fpm

PrivateTmp=True

[Install]

WantedBy=multi-user.target
在这里插入图片描述

  1. 设置php-fpm服务开机自启动:

systemctl enable php-fpm.service
在这里插入图片描述

  1. 启动php-fpm:

systemctl start php-fpm.service
在这里插入图片描述
查看是否启动成功:

ps aux | grep php-fpm
在这里插入图片描述

  1. 写一个php脚本测试nginx是否已支持php,php是否已支持mysql。
<?php
phpinfo();

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
登录地址会变成下载test.php文件
在这里插入图片描述
解决方法:改nginx配置,把以下代码前面的 # 去掉,如教程https://blog.csdn.net/pang040328/article/details/12291085 (借鉴一下大神教程,谢谢)

我的nginx配置在conf目录里

cd /usr/local/nginx/conf

vi nginx.conf
在这里插入图片描述
在这里插入图片描述

再重新输入
在这里插入图片描述
成功
在这里插入图片描述

11.导入项目

11.1导入项目到这个目录下,cd /usr/local/nginx/html
在这里插入图片描述
在这里插入图片描述

解压
在这里插入图片描述
在这里插入图片描述
11.2改配置文件
在这里插入图片描述
配置完后,页面展示不出来,各种报错各种改,觉得可能项目有问题,换了一个项目,朋友说是这么配的,但是还是展示不出来,没找到原因
在这里插入图片描述
11.3重启nginx

systemctl restart nginx.service
在这里插入图片描述
验证
在这里插入图片描述
在这里插入图片描述

请多指教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值