Centos7.2源码编译安装LA(N)MP

前端之家收集整理的这篇文章主要介绍了Centos7.2源码编译安装LA(N)MP前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

LAMP环境中PHP是作为apache的模块安装的,所以安装顺序是PHP放在apache的后面安装,这样便于安装PHP时可以在apache的模块目录生成对应的PHP模块。

apache版本:2.4.37

MysqL版本:5.7.24

PHP版本:7.3.0

Nginx版本:Nginx-1.14.2

注意:这里是使用的root用户安装,如果是其他用户,相应的操作前需要加上sudo。

 

1、安装apache

需要安装的依赖 apr、apt-util、pcre,pcre是一个正则表达式库,apache在路由匹配和路由重写时需要用到。

注意:这里不要使用pcre2,否则编译apache时会报错。

 

下载软件源码压缩包并解压

cd /usr/local/src
wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.37.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.5.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
tar -zxvf httpd-2.4.37.tar.gz
tar -zxvf apr-1.6.5.tar.gz
tar -zxvf apr-util-1.6.1.tar.gz
tar -zxvf pcre-8.42.tar.gz

 

将apr-1.6.5重命名为apr并移动到apache的源码包的srclib目录中

将apr-1.6.5重命名为apr并移动到apache的源码包的srclib目录中

mv apr-1.6.5 httpd-2.4.37/srclib/apr
mv apr-util-1.6.1 httpd-2.4.37/srclib/apr-util

 

编译安装pcre

cd pcre-8.42
./configure --prefix=/usr/local/pcre-8.42
make && make install

 

编译安装apache

cd /usr/local/src/httpd-2.4.37
./configure --prefix=/usr/local/apache --with-pcre=/usr/local/pcre-8.42 --with-included-apr
make && make install

注:如果make过程报 fatal error: expat.h: No such file or directory,运行 yum install -y expat-devel 安装expat,然后重新执行以上操作,如果还报错,先执行make distclean后重新执行以上操作。

 

启动apache

/usr/local/apache/bin/apachectl start

这里会出现错误提示信息,是因为没有配置虚拟主机的缘故,这里忽略它。

 

在浏览器中访问本机ip,如果是虚拟机则需要使用虚拟机的ip地址

显示It works! 代表启动成功,apache安装完成。

 

2、安装MysqL

准备工作(安装依赖、新建用户和目录)

yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper
groupadd MysqL
useradd -s /sbin/nologin -g MysqL MysqL
mkdir -p /home/MysqL/{data,log}
mkdir  /home/MysqL/log/error.log
chown -R MysqL:MysqL /home/MysqL

 

下载并解压MysqL源码压缩包

cd /usr/local/src
wget https://dev.MysqL.com/get/Downloads/MysqL-5.7/MysqL-5.7.24.tar.gz
tar -zxvf MysqL-5.7.24.tar.gz

 

进入MysqL源码包目录

cd /usr/local/src/MysqL-5.7.24

 

执行cmake

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL -DMysqL_DATADIR=/home/MysqL/data -DSYSCONFDIR=/etc -DENABLED_LOCAL_INFILE=1 -DENABLE_DOWNLOADS=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

 

执行make

make

这里需要等待很长的时间,可能由于电脑性能和在虚拟机里面的原因,我这里等了将近三个小时,然后安装

make install

 

安装完成后将MysqL的bin目录加入环境变量

echo "export PATH=$PATH:/usr/local/MysqL/bin" >> /etc/profile
source /etc/profile

 

接下来初始化数据库数据目录

MysqLd --initialize --user=MysqL

注意:这里终端会输出root的初始密码,把它记录下来。

 

接下来配置一下/etc/my.cnf

[client]
port=3306
socket=/tmp/MysqL.sock

[MysqLd]
port=3306
basedir=/usr/local/MysqL
datadir=/home/MysqL/data
log_error=/home/MysqL/log/error.log
socket=/tmp/MysqL.sock
key_buffer_size=16M
max_allowed_packet=8M

[MysqLdump]
quick

上面只列出了基本的配置项,更多配置项请查看官方文档。配置项根据自己的机器做好调整。

 

然后将启动脚本添加到服务中,实现开机自启动

cp /usr/local/MysqL/support-files/MysqL.server /etc/init.d/MysqLd
chmod +x /etc/init.d/MysqLd
chkconfig --add MysqLd

 

接下来启动MysqLd

service MysqLd start

 

MysqLd服务启动起来以后,连接MysqLd服务,修改root初始密码

MysqL -uroot -p
输入密码进入MysqL命令行
alter user root@localhost identified by 新密码;

 

MysqL安装配置完成。

 

3、安装PHP

 下载源码压缩包并解压

cd /usr/local/src
wget http://cn2.PHP.net/get/PHP-7.3.0.tar.gz/from/this/mirror
tar -zxvf mirror

 

接下来进入PHP源码目录编译安装

cd PHP-7.3.0
./configure --prefix=/usr/local/PHP --enable-fpm --with-apxs2=/usr/local/apache/bin/apxs --with-MysqLi --with-pdo-MysqL
make && make install

 

安装成功后会在/usr/local/apache/modules目录下生成一个libPHP7.so的模块文件

 

编辑 httpd.conf 文件调用 PHP 模块

vi /usr/local/apache/conf/httpd.conf

LoadModule PHP7_module modules/libPHP7.so

先检查是否已经自动生成,没有则手动加入

让apache将扩展名.PHP解析成PHP

<FilesMatch \.PHP$>

  SetHandler application/x-httpd-PHP

</FilesMatch>

默认PHP配置文件目录为/usr/local/PHP/lib,也可以在httpd.conf文件中用PHPIniDir指令指定,如:PHPIniDir /etc/PHP.ini

PHP源码包复制配置文件到指定目录,这里使用默认目录

cp /usr/local/src/PHP-7.3.0/PHP.ini-development /usr/local/PHP/lib/PHP.ini

 

新建PHP文件测试

rm -rf /usr/local/apache/htdocs/index.html
echo "<?PHP PHPinfo(); ?>" > /usr/local/apache/htdocs/index.PHP

 

 重启apache

/usr/local/apache/bin/apachectl restart

 

在浏览器中访问http://主机ip/index.PHP显示PHPinfo()的内容代表配置正确。

LAMP环境到此搭建完成。

 

4、安装Nginx

下载源码压缩包并解压

cd /usr/local/src
wget http://Nginx.org/download/Nginx-1.14.2.tar.gz
tar -zxvf Nginx-1.14.2.tar.gz

 

进入源码包目录进行编译前的准备工作

cd Nginx-1.14.2
./configure --prefix=/usr/local/Nginx --with-pcre=/usr/local/src/pcre-8.42

注意:pcre的路径为源码包的路径

 

编译和安装

make && make install

 

完成以后,先检查apache是否在启动状态

ps aux | grep httpd

 

如果apache在启动状态则先将其退出

/usr/local/apache/bin/apachectl stop

 

启动PHP-fpm

新建用户用于启动PHP-fpm

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

 

修改PHP-fpm配置文件

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 /usr/local/PHP/sbin/PHP-fpm /usr/local/bin
vi /usr/local/PHP/etc/PHP-fpm.d/www.conf

 

找到以下内容修改

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set,the default user‘s group
;       will be used.
user = www-data
group = www-data

 

然后启动PHP-fpm

PHP-fpm

 

配置Nginx使其支持PHP应用

vi /usr/local/Nginx/conf/Nginx.conf

 

修改默认的 location 块,使其支持 .PHP 文件

location / {
    root   html;
    index  index.PHP index.html index.htm;
}

 

下一步配置来保证对于 .PHP 文件的请求将被传送到后端的 PHP-FPM 模块,取消默认的 PHP 配置块的注释,并修改为下面的内容

location ~ \.PHP$ {
    fastcgi_index   index.PHP;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

 

启动Nginx

/usr/local/Nginx/sbin/Nginx 

 

创建测试文件

rm -rf /usr/local/Nginx/html/index.html
echo "<?PHP PHPinfo(); ?>" > /usr/local/Nginx/html/index.PHP

 

在浏览器中访问http://主机ip,显示PHPinfo()的内容代表配置成功。

到这里LA(N)MP环境搭建完成。 

猜你在找的CentOS相关文章