php源码编译

1.从网上找到php的源码安装包

tar jxf php-5.6.38.tar
cd php-5.6.38
ls

lamp架构

yum install libxml2-devel -y
yum install openssl-devel -y
yum install curl-devel -y
yum install gmp-devel -y
yum install net-snmp-devel -y

###注意这几个包系统里面没有,你需要从网上下载
yum install -y gd-devel-2.0.35-11.el6.x86_64.rpm  ##解决图片依赖
yum install libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
yum install libmcrypt-2.5.8-9.el6.x86_64.rpm
yum install rezc-0.13.5.1.el6.x86_64.rpm  ##解决出现的一个警告,可不安装

 lamp架构

lamp架构

./configure --prefix=/usr/local/lnmp/php    # php安装的位置
 --with-config-file-path=/usr/local/lnmp/php/etc #php配置文件所在的位置
 --with-mysql=mysqlnd 
 --enable-mysqlnd 
 --with-mysqli=mysqlnd 
 --with-pdo-mysql=mysqlnd 
 --with-openssl 
 --with-snmp #用在监控网站中
 --with-gd 
 --with-zlib  
 --with-libxml-dir 
 --with-png-dir 
 --with-jpeg-dir 
 --with-freetype-dir 
 --with-pear 
 --with-gettext 
 --with-gmp 
 --enable-inline-optimization 
 --enable-soap 
 --enable-ftp 
 --enable-sockets 
 --enable-mbstring 
 --enable-fpm  # 开启fpm模式(nginx等服务用的)
 --with-fpm-user=nginx  # 对PHP服务的限制通过nginx用户来实现
 --with-fpm-group=nginx  # PHP以nginx用户组身份运行
 --with-mcrypt   # 提供了对多种块算法的支持 主要用来实现加密等算法
 --with-mhash    # 加密算法

编译和安装

make && make install

lamp架构

lamp架构

lamp架构

vim /usr/local/lnmp/php/etc/php-fpm.conf

将25行的注释去掉

lamp架构

在936行修改时区

lamp架构

lamp架构

添加nginx用户,否则后面开启服务时会报错

lamp架构

lamp架构

查看端口状态

lamp架构

nginx源码编译安装

lamp架构

vim src/core/nginx.h  去掉版本号

lamp架构

vim auto/cc/gcc  注释172行

lamp架构

解决编译过程中需要安装的软件

yum install -y pcre-devel 

yum install -y openssl-devel

yum install gcc -y

进行预编译

lamp架构

lamp架构

ln -s /usr/local/lnmp/nginx/sbin/nginx /sbin/  做软链接

配置nginx服务

cd /usr/local/lnmp/nginx/conf
vim nginx.conf

lamp架构

lamp架构

vim /etc/security/limits.conf

lamp架构

cd /usr/local/lnmp/nginx/html

vim index.php

lamp架构

在网站访问测试

lamp架构

 

lamp架构

vim nginx.conf

lamp架构

lamp架构

mysql源码安装

lamp架构

lamp架构

直接执行完上面命令后,会报错,要解决一系列依赖性

     yum install gcc gcc-c++ ncurses-devel bison -y

删除cmake缓存文件,因为编译时会优先读取cmake缓存文件,要将缓存文件删了,重新编译

    rm -f CMakeCache.txt

make && make install 

lamp架构

配置mysql

查看support-files文件夹的内容,发现并没有my_default.cnf默认的配置文件,如果没有默认的配置文件,需要手动创建一个my_default.cnf配置文件,我从网上找了一个配置文件,进行了相关的修改

lamp架构

vim my_default.cnf

lamp架构

cp my_default.cnf  /etc/my.cnf

cp mysql.server /etc/init.d/mysqld  将编译完成的mysql启动脚本复制到系统启动服务的默认目录中
groupadd -g 27 mysql   建立mysq组
useradd -u 27 -g 27 -s /sbin/nologin mysql
cd /usr/local/lnmp/mysql/
chown mysql.mysql . -R   更改此目录中的所有文件的用户和组

lamp架构

lamp架构

vim .bash_profile  将编译生成的mysql二进制命令放进系统的环境变量文件中,保证可以直接调用该二进制命令

lamp架构

source .bash_profile 加载文件

lamp架构

复制最后一行冒号后的生成的临时密码,后面会用

lamp架构

将/usr/local/lnmp/mysql/目录及目录下的文件改为超户,除了data目录任为mysql,因为mysql服务器要往这个目录中写数据

lamp架构

mysql_secure_installation

lamp架构

(1)在第一次交互请求后面输入刚刚初始化时复制的临时密码

(2)然后输入两次新密码

(3)接下来的交互式请求可以直接回车,这条交互式请求是询问你是否要检查密码强度,如果输入y,就要重新修改密码,密码长度必须超过8位,必须有大小写字母, 所以我们直接回车

(4)接下来会询问是否要修改root密码,直接回车,因为上面已经设置过了

(5)接下来全部输入y回车就行 ,现在就可以直接进入mysql了

输入设置的密码进入数据库

lamp架构

搭建论坛

yum install unzip -y

unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/  解压到指定目录,nginx的默认发布目录

cd /usr/local/lnmp/nginx/html/

mv upload bbs  改目录

lamp架构

cd /bbs

chmod 777 config/ data/ uc_server/ uc_client/ -R ###修改里面目录权限

lamp架构

lamp架构

lamp架构

lamp架构

lamp架构

vim /usr/local/lnmp/php/etc/php.ini   修改三处

lamp架构

lamp架构

lamp架构

刷新页面后,又出现权限受限的报错

lamp架构

lamp架构

lamp架构

lamp架构

lamp架构

 

相关文章:

  • 2021-08-26
  • 2021-12-03
  • 2021-08-02
  • 2021-08-08
  • 2021-11-09
  • 2021-10-18
  • 2021-04-30
猜你喜欢
  • 2021-04-29
  • 2021-12-18
  • 2021-08-19
  • 2021-07-18
  • 2021-11-05
相关资源
相似解决方案