前言
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 mysqld
和systemctl daemon-reload
-
安装完毕后,在 /var/log/mysqld.log 文件中会自动生成一个随机的密码,我们需要先取得这个随机密码,以用于登录 MySQL 服务端:
grep "password" /var/log/mysqld.log
,登录进出之后更改密码即可。
出现这样的错误就是密码设置的太简单了,需要大小写字母、数字、其他特殊字符组合.
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
网友评论