美文网首页
LAMP环境搭建

LAMP环境搭建

作者: Jerry_Liang | 来源:发表于2019-04-06 18:15 被阅读0次

前言

Centos7下LAMP的环境搭建!后续会带来集成LNMP的环境搭建!
版本:Apache(httpd-2.4.38)+MySQL-5.7.24+PHP-7.1.26

第一步:配置防火墙


1.开放80和3306端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent (permanent为永久生效,没有此参数重启就 失效)

firewall-cmd --zone=public --add-port=80/tcp --permanent

systemctl restart firewalld.service 重启防火墙

2.防火墙的一些相关指令:

image

第二步:使用源码安装Apache


安装Apache之前关联依赖的安装

1.下载Apache之前需要安装的两个个关联包,apr、apr-util:

下载链接如下:https://apr.apache.org/

2.将下载好的apr-1.4.5.tar.gz和apr-util-1.3.12.tar.gz上传到Linux的/usr/local/路径中,并解压:

tar -zxvf apr-1.4.5.tar.gz
tar -zxvf apr-util-1.3.12.tar.gz

3.cd到解压出来的apr-1.4.5中,并执行编译和安装:

#cd到apr中
cd /usr/local/apr-1.4.5
#预编译,并制定安装路径为/usr/local/apr,我们需要提前在/usr/local/中使用mkdir apr来创建apr文件夹
./configure --prefix=/usr/local/apr
#编译
make
#安装
make install

4.cd到解压出来的apr-util-1.3.12中,并执行编译和安装:

#cd到apr中
cd /usr/local/apr-1.4.5
#预编译,并制定安装路径为/usr/local/apr-util,同上,先创建文件夹apr-util,同时注意后面的--with-apr不可少
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#编译
make
#安装
make install

5.下载pcre-8.37.tar.gz到/usr/local/路径中,下载链接(http://www.pcre.org/):

#解压
tar -zxvf pcre-8.37.tar.gz
#预编译
cd /usr/local/pcre-8.37
./configure 
#编译与安装
make
make install

5.至此完成了apache编译安装所需依赖的安装:

若apr和apr-util安装过程中遇到问题,可参考该博客:https://www.jianshu.com/p/a336d3808f52

安装Apache

1.下载httpd包:

httpd-2.4.38.tar.gz,下载链接为:http://httpd.apache.org/download.cgi#apache24

2.使用xftp将httpd-2.4.38.tar.gz压缩包放到/usr/local/下,并解压,命令如下:

tar -zxvf httpd-2.4.38.tar.gz

3.cd到http-2.4.38中,并编译安装:

cd /usr/local/httpd-2.4.38
#预编译 ,指定安装路径在/usr/local/apache2/下,需在/usr/local/下提前mkdir apache2
./configure --prefix=/usr/local/apache2/ --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

#编译与安装
make
make install

4.修改Apache配置文件

cd /usr/local/apache2/conf
#编辑
vim httpd.conf
#搜索ServerName,将注释打开,并修改,如下:
#ServerName www.example.com:80 修改为 ServerName localhost:80

4.启动Apache

#到安装路径下启动Apache
cd /usr/local/apache2/bin
#启动
./apachectl start

5.打开浏览器,输入虚拟机IP地址访问,若出现It works! 则表明Apache安装成功。

第三步:安装MySQL


1.检查是否有Mysql

Linux中有可能带有mysql数据库,所以我们需要检查一下,再进行安装。首先判断云空间中是否安装了mysql,使用如下命令:rpm -qa | grep mysql如果没有mysql就进行第2步,如果已经有mysql则进行第3步。

2.安装Mysql服务

通过yum安装命令进行安装:

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum localinstall mysql57-community-release-el7-8.noarch.rpm
yum install mysql-community-server

3.Mysql配置

  • 启动mysqld服务(第一次启动会初始化配置,之后再启动就不用了):systemctl start mysqld

  • 将mysqld服务设置为开机启动:systemctl enable mysqldsystemctl daemon-reload

  • 安装完毕后,在 /var/log/mysqld.log 文件中会自动生成一个随机的密码,我们需要先取得这个随机密码,以用于登录 MySQL 服务端:grep "password" /var/log/mysqld.log,登录进出之后更改密码即可。

image

出现这样的错误就是密码设置的太简单了,需要大小写字母、数字、其他特殊字符组合.

image
  • 密码设置出问题可以使用下列指令:
set global validate_password_policy=0; # 设置密码强度为low
set global validate_password_length=4; # 设置密码最低长度为4
alter user 'root'@'localhost' identified by '123456'; # 设置root密码为123456  \q 退出

此时我们就可以使用以下命令再输入密码,登录mysql数据库了:mysql -u root -p

特别需要注意的是mysql数据库的数据库文件存放在/var/lib/mysql,端口为3306

4.远程连接Mysql数据库

安装完Mysql之后,远程连接数据库之前需要开启Mysql的远程连接权限,执行下面两条语句即可: 1)给予任何主机访问数据的权限

MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION

2)修改生效

MySQL>FLUSH PRIVILEGES

3)退出MySQL服务器

MySQL>EXIT

第四步:安装PHP


安装

1.下载安装包php-7.1.26.tar.gz并用xftp上传至服务器/usr/local/路径中:
下载链接:https://www.php.net/
2.安装一些依赖库文件:

yum install libxml2-devel gd-devel libmcrypt-devel libcurl-devel openssl-devel

3.解压并编译安装:

cd /usr/local/
#解压
tar -zxvf php-7.1.26.tar.gz
#进入相应文件中
cd /usr/local/php-7.1.26
#1.预编译,(注意这里非常关键),首先我们php的安装路径为/usr/local/php7,同样需要先创建#php7这个文件夹,同时,为了得到接下来关联Apache需要使用的libphp7.so 需要添加
#--with-apxs2=/usr/local/apache2/bin/apxs这一段,这样我们才能生成需要的libphp7.so
#2.--enable-fpm也是必须的,该依赖可以使php可以关联Apache或者Nginx一同工作
./configure --prefix=/usr/local/php7 \
 --with-curl \
 --with-freetype-dir \
 --with-gd \
 --with-gettext \
 --with-iconv-dir \
 --with-kerberos \
 --with-libdir=lib64 \
 --with-libxml-dir \
 --with-mysqli \
 --with-openssl \
 --with-pcre-regex \
 --with-pdo-mysql \
 --with-pdo-sqlite \
 --with-pear \
 --with-png-dir \
 --with-xmlrpc \
 --with-xsl \
 --with-zlib \
 --with-apxs2=/usr/local/apache2/bin/apxs \
 --enable-fpm \
 --enable-bcmath \
 --enable-libxml \
 --enable-inline-optimization \
 --enable-gd-native-ttf \
 --enable-mbregex \
 --enable-mbstring \
 --enable-opcache \
 --enable-pcntl \
 --enable-shmop \
 --enable-soap \
 --enable-sockets \
 --enable-sysvsem \
 --enable-xml \
 --enable-zip \
 --enable-mysqlnd

#编译安装
make 
make install
​
#查看/usr/loca/apache2/modules中是否包含libphp7.so文件
cd /usr/local/apache2/modules/
ll
#若存在,则可以进行下一步,失败的话需要重新排下错误,看是否操作有误。
#出问题可参考该文章 https://www.zhihu.com/question/38869703

4.复制php初始化文件

#cd到/usr/local/php-7.1.26
cd /usr/local/php-7.1.26
#执行如下命令
cp php.ini-development /usr/local/php7/lib/php.ini

5.配置php-fpm

#php-fpm是支持Apache和Nginx的必要依赖,当修改php.ini后需要重启php-fpm才能生效
cd /usr/local/php7/etc/
cp php-fpm.conf.default php-fpm.conf
​
cd /usr/loca/php7/etc/php-fpm.d
cp www.conf.default www.conf

6.php-fpm的启动与关闭

#首次启动php-fpm
cd /usr/local/php7/sbin/
./php-fpm
​
#若已启动过php-fpm则需要用重启的这种方法
#查看php-fpm的master进程号,如下图所示,master进程号为4384
ps -ef | grep php-fpm
#使用USR2信号平滑重启所有worker进程并重新载入配置和二进制模块
kill -USR2 4384
​
#php-fpm的关闭,同样是查看进程号,再执行以下命令
kill -INT 4384
image

7.测试PHP是否安装成功

#任意文件夹下创建test.php文件,
touch test.php
#编辑如下内容
<?php
 phpinfo();
?>
#测试,以php的命令执行test.php文件
/usr/local/php7/bin/php test.php
#若有内容输出,则证明已经安装成功了
关联Apache(关键步骤)

1.查看Apache的配置文件是否已经开启关联(一般情况下,安装完成PHP后,会开启,假如没有开启则开启),可通过第步的测试来测试是否已经开启关联。

2.开启关联

#编辑Apache配置文件
vim /usr/local/apache/conf/httpd.conf
​
#在配置文件中的LoadModule模块中加入如下语句,开启关联
LoadModule php7_module /usr/local/apache2/modules/libphp7.so
​
#在配置文件末尾加入如下代码
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
​
#搜索DirectoryIndex,初始只有index.html 更改为如下代码
DirectoryIndex index.html index.shtml index.cgi index.php index.phtml index.php3
​
#找到AddType出,添加如下两行代码
AddType application/x-httpd-php .php .php3 .phtml .inc
AddType application/x-httpd-php-source .phps

3.测试

配置文件中的DocumentRoot如下,因此,在/usr/local/apache2/htdocs下创建info.php来测试:(注:该路径即为以后放置我们网站的路径)

image
#到如下路径中
cd /usr/local/apache2/htdocs
#创建info.php
vim info.php
#输入如下内容
<?php
 phpinfo();
?>
#保存并退出编辑。

在浏览器中输入虚拟机访问地址加info.php:ip/info.php

若出现如下图所示,则关联成功了

image
关联Mysql(关键步骤)

在php编译的时候,我们加了如下的参数才可以实现关联Mysql(此处目的只是列出来与mysql有关联的扩展,上面编译时已包含进来了):因为php7.0以上的版本废弃了mysql扩展,所以我们使用mysqli和pdo_mysql来实现关联Mysql。

--with-mysqli \
--with-pdo-mysql \
--enable-mysqlnd

其实,在编译的时候我们就已经添加了关联Mysql的依赖了(最好在之前就弄了,不然会挺麻烦的)。若忘记在编译的时候加上上诉依赖模块,可以使用如下方法来添加扩展,此处以添加mysqli扩展为例。

php配置文件中默认扩展的存放位置为/usr/local/php7/lib/php/extensions/no-debug-zts-20160303

1.在解压出来的php-7.1.26中查找是否包含mysqli这扩展文件

cd /usr/local/php-7.1.26/ext/
#使用ls查看文件夹内容
ls
#若无,则需要在网上下载相应的扩展压缩包,之后再进入解压出来的文件夹内执行以下步骤的操作(不包括cd #mysqli)若有mysqli,则可以直接在该文件夹下编译安装该扩展,步骤如下
cd mysqli
#使用phpize初始化,若在初始化时出错,报错信息为Cannot find autoconf。。。。。则可以使用
#yum install autoconf来解决
/usr/local/php7/bin/phpize
#编译
./configure 
#安装
make && make install
#安装完成会在默认扩展存放路径中生成mysqli.so文件

2.编辑php.ini

#cd到相应路径下
cd /usr/local/php7/lib
#开启编辑
vim php.ini
#引入扩展
extension=mysqli.so
#重启php,步骤如之前重启php-fpm所示一致

3.在之前测试访问的info.php中,若出现如下两个图中的mysqli和pdo_mysql扩展,则说明关联mysql成功了

image image

第五步:(测试用例)LINUX下的ECShop部署

1.将ECShop的源代码appserver和ecshop放到我们安装的Apache的htdocs文件夹中,

#htdocs的路径如下
cd /usr/local/apache2/htdocs/
#给两个文件夹赋予读、写和可执行的权限
chmod -R 777 appserver
chmod -R 777 ecshop

2.在浏览器中输入ip/ecshop就可以看到安装向导页面啦(1图)!(之前安装的时候都踩了好多坑,2图所示,原因就是文件夹的权限没有给,给这两个文件夹可读可写的权限后就可以正常安装ecshop啦)

image image

同时,还遇到的一个坑是数据库连接不上,原因是我使用的是阿里云服务器,而localhost不知道为什么解析不了,输入服务器的具体ip地址就可以成功连接了。

参考

PHP7安装:https://www.jianshu.com/p/4438ff8aa44a

Linux下的EC_Shop部署:https://blog.csdn.net/iteye_14593/article/details/82675082

相关文章

网友评论

      本文标题:LAMP环境搭建

      本文链接:https://www.haomeiwen.com/subject/gqtdiqtx.html