编译安装php包括lamp安装

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本实验是在centos7.9完成


一、PHP介绍

一、PHP介绍
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

优点:灵活,上手快,易修改,发布快捷,环境好部署

PHP主要用在服务器端上用于Web开发,约占网站总数的80%。 Facebook最初使用的就是PHP,PHP在WordPress内容管理系统中扮演的角色让它很受欢迎。

官网

https://www.php.net

#软件包获取

https://www.php.net/distributions/php-7.3.4.tar.bz2

二、安装步骤

1)依赖包安装

yum install gcc-c++ 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 gd net-snmp-*

libzip版本低问题处理

libzip要求1.1及以上,系统提供1.0需要升级

官方网站: https://libzip.org/

代码如下(示例):

wget https://libzip.org/download/libzip-1.5.2.tar.gz --no-check-certificate
tar xvf libzip-1.5.2.tar.gz
cd libzip-1.5.2
mkdir build
cd build
cmake ..
make -j4 && make install 

2)配置

wget https://www.php.net/distributions/php-7.3.4.tar.bz2 --no-check-certificate
tar xvf php-7.3.4.tar.bz2          
cd      php-7.3.4
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=mysqlnd --enable-pdo --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/ --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-pcre-regex --with-zlib --with-bz2 --enable-calendar --disable-phar --with-curl --enable-dba --with-libxml-dir --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-jis-conv --with-mhash --enable-mbstring --enable-opcache=yes --enable-pcntl --enable-xml --disable-rpath --enable-shmop --enable-sockets --enable-zip --enable-bcmath --with-snmp --disable-ipv6 --with-gettext --disable-rpath --disable-debug --enable-embedded-mysqli --with-mysql-sock=/usr/local/mysql/  –with-apxs2=/usr/local/apache/bin/apxs
         
配置参数说明
---prefix=/usr/local/php                             安装路径
--with-config-file-path=/usr/local/php/etc   配置文件路径
--with-mysqli=mysqlnd --enable-embedded-mysqli --with-mysql-sock=/usr/local/mysql/      mysql支持及客户端设置
--enable-pdo --with-pdo-mysql=mysqlnd                      开启php pdo,PDO一是PHP数据对象(PHP Data Object)的缩写
--with-iconv-dir=/usr/local/                         指定转码工具,各种字符集间的转换
--enable-fpm --with-fpm-user=www --with-fpm-group=www             支持php-fpm,允许以服务的方式启动PHP
--with-pcre-regex                             支持pcre正则表达式
--with-zlib --with-bz2  --with-zlib-dir  --enable-zip            支持压缩
--enable-calendar                             支持日历
--disable-phar                        PHAR (“Php ARchive”) 是PHP里类似于JAR的一种打包文件。如果你使用的是 PHP 5.3 或更高版本,那么Phar后缀文件是默认开启支持的.
--with-curl                                 支持curl
--enable-dba                                 开启dba函数支持
--with-libxml-dir                             支持xml文件库 对xml读取和查询
--enable-ftp                                 支持ftp
--with-gd --with-jpeg-dir --with-png-dir                  支持图片
--with-freetype-dir                             支持字库
--enable-gd-jis-conv                             支持gd库
--with-mhash --enable-mbstring                      支持加密
--enable-opcache=yes                             开启opcache
--enable-pcntl                                             开启PHP进程控制支持   默认是关闭的
--enable-xml                                 允许xml文件
--disable-rpath                             关闭额外的运行库文件
--enable-shmop                                 开启Shmop 是一个易用的允许PHP读取、写入、创建和删除Unix共享内存段的函数集
--enable-sockets                             打开 sockets 支持
--enable-bcmath                             增加bcmath扩展的支持,这是一个支持大整数计算的扩展。
--with-snmp                                 支持snmp
--disable-ipv6                                 关闭IPV6支持
--with-gettext                                 打开gnu 的gettext 支持,编码库用到
--disable-debug                              关闭调试模式
 –with-apxs2=/usr/local/apache/bin/apxs      作为apache模块运行        
           
make -j4  && make install

出现问题
configure: error: off_t undefined; check your library configuration

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

3)编译安装

make -j4 && make install

4)拷贝一个配置文件

cp php.ini-production /usr/local/php/etc/php.ini

三、PHP服务配置

PHP服务配置

egrep -v "^;|^$" /usr/local/php/etc/php-fpm.conf

[global]

pid = run/php-fpm.pid

error_log = log/php-fpm.log

daemonize = yes

include = /usr/local/php/etc/php-fpm.d/\*.conf

子配置文件

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

egrep -v "^;|^$" /usr/local/php/etc/php-fpm.d/www.conf

[www]

user = www

group = www

listen =  /usr/local/php/etc/php-fpm.socket

listen.owner = www

listen.group = www

listen.mode = 0660

pm = dynamic

pm.max_children = 5

pm.start_servers = 2

pm.min_spare_servers = 1

pm.max_spare_servers = 3

cp /root/php-7.3.4/sapi/fpm/php-fpm.service /etc/systemd/system/

useradd -s /sbin/nologin -r www


#php启动
systemctl daemon-reload

systemctl enable php-fpm

systemctl start php-fpm


四、LAMP服务构建

cd /usr/local/apache/conf/
vim httpd.conf
apache修改主配置文件,添加以下行
Include conf/extra/php.conf
Include conf/extra/php-fpm.conf

vim /usr/local/apache/conf/extra/php.conf
LoadModule php7_module        modules/libphp7.so
AddType application/x-httpd-php .php

vim /usr/local/apache/conf/extra/php-fpm.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so


[root@centos7-server conf]# egrep "^listen" /usr/local/php/etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000
listen.backlog = 511
listen.owner = www
listen.group = www
listen.mode = 0660
[root@centos7-server conf]#

五、lamp部署-WordPress站点上线

1)获得网站代码

wget https://wordpress.org/latest.tar.gz

2)将源文件拷贝到APACHE的htdocs目录

mkdir /usr/local/apache/htdocs/wordpress/
tar xf latest.tar.gz -C /opt
mv /opt/wordpress/* /usr/local/apache/htdocs/wordpress/
chown www.www /usr/local/apache/htdocs/wordpress -R

3)配置虚拟主机

cat /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs/wordpress"
</VirtualHost>


<Directory "/usr/local/apache/htdocs/wordpress">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>


<IfModule dir_module>
    DirectoryIndex phpinfo.php index.php index.html
</IfModule>


<FilesMatch "\.php$">
    # Unix sockets require 2.4.7 or later
    SetHandler  "proxy:unix:/usr/local/php/etc/php-fpm.socket|fcgi://localhost/"
</FilesMatch>

4)重启生效

killall httpd

/usr/local/apache/bin/apachectl
systemctl restart fpm-php

六、安装wordpress

1)登陆数据库
mysql -u root -p123456
2)新建数据库 wordpress
mysql> create database wordpress;
Query OK, 1 row affected (0.01 sec)
3)wordpress安装
打开浏览器输入[http://IP]

总结

记得添加www用户,否则会出现报错

useradd -s /sbin/nologin -r www
在这里插入图片描述
记得把http.conf中此位置的模块进行注释
在这里插入图片描述

可能会出现的问题,就是数据库连接不上,是因为没有进行远程授权

mysql> CREATE USER 'root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.17 sec)

mysql> grant all privileges on *.* to 'root'@'%';
Query OK, 0 rows affected (0.13 sec)

mysql>  ALTER USER root@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.07 sec)

mysql>
mysql> set global local_infile=ON;
Query OK, 0 rows affected (0.09 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

mysql> exit
Bye

最后重启三个服务即可
[root@centos7-server ~]# systemctl restart mysql
[root@centos7-server ~]# systemctl restart php-fpm
[root@centos7-server ~]# killall httpd
[root@centos7-server ~]# /usr/local/apache/bin/apachectl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值