目录
LAMP网站搭建过程(L:Centos 7.6+A:Apach+M:mysql5.7+P:PHP)
参考:https://www.jianshu.com/p/a09f0bc5aade
注意,在安装过程,大部分问题是编译问题或者是模块问题,认真根据文档搭建
一、环境及安装包准备
LAMP即:Linux、Apache、Mysql、Php,也就是在linux系统下运行php网站代码,使用的数据库是mysql、web服务软件是apache。之所以存在LAMP这种说法,倒不是一定要如此搭配方行,只是mysql、apache比较常用而且免费,所以linux下的php网站就使用LAMP这样的搭配。
1、环境准备:
Linux:Centos 7.6 Apach:httpd-2.4.29.tar Mysql:mysql-5.7.20.tar.gz和boost_1_59_0.tar.gz PHP:php-7.2.4.tar.bz2
下载地址:
链接:https://pan.baidu.com/s/1-j6uY0dpJc-OoLz0gxzU0g 提取码:x808
2、Linux Centos 7.6安装:
参照:https://www.topunix.com/post-1513.html
二、Apache安装(源码安装):
注意,如果apache源码安装,php也要源码安装。如果php 通过yum安装,会自动安装其他版本的httpd容易冲突。
1、安装编译环境
在安装apache之前,我们需要安装编译apache时所需要的相关软件包,如下:
yum -y install gcc gcc++ perl zlib zlib-devel expat-devel openssl-devel pcre pcre-devel expat-devel apr apr-util tree
2、卸载原有Apache
在源码安装apache之前,我们要先卸载系统中,已经通过rpm包安装的apache。如下:
rpm -qa |grep httpd rpm -e --nodeps httpd-2.2.15-29.el6.centos.x86_64 rpm -e --nodeps httpd-tools-2.2.15-29.el6.centos.x86_64
3、下载解压源码包及依赖包
下载apache的源码包,我们本次实验以apache的2.4.29版本为例。apache的源码包建议直接去apache官网下载。
或者使用百度网盘的安装包。
4、解压源码包
[root@localhost backupdata]# tar zxvf httpd-2.4.29.tar.gz
5、安装Apache依赖
解压(tar zxvf )-->进入解压目录(cd)-->预编译(configure)-->编译(make)-->安装(make install):下面开始安装
(1)安装apr
[root@localhost backupdata]# tar xvf apr-1.6.3.tar [root@localhost backupdata]# cd apr-1.6.3/ [root@localhost apr-1.6.3]# ./configure -prefix=/usr/local/apr [root@localhost apr-1.6.3]# make && make install
(2)安装apr
[root@localhost backupdata]# tar zxvf apr-util-1.6.1.tar.gz [root@localhost backupdata]# cd apr-util-1.6.1/ [root@localhost apr-util-1.6.1]#./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config [root@localhost apr-util-1.6.1]#make && make install
6、编译安装源码包
(1)查看编译帮助
[root@localhost httpd-2.4.29]# ./configure -help
(2)编辑
[root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
如果报错:apache在编译../configure仍提示APR-util not found,指定位置
./configure --prefix=/usr/local/apache2 --with-apr-util=/usr/local/apr-util
(3)安装
[root@localhost httpd-2.4.52]#make && make install
6、安装完毕apache,查看安装后的目录,如下:
[root@localhost httpd-2.4.29]# yum install tree -y [root@localhost httpd-2.4.29]# tree -L 1 /usr/local/apache2/ /usr/local/apache2/ ├── bin ├── build ├── cgi-bin ├── conf ├── error ├── htdocs ├── icons ├── include ├── logs ├── man ├── manual └── modules
7、测试apache
(1)复制启动脚本
将apache的启动脚本复制到/etc/rc.d/init.d这个目录下,如下:
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
(2)配置文件
vi /usr/local/apache2/conf/httpd.conf Listen 80 ServerName 192.168.20.31:80
启动apache,如下:
/etc/init.d/httpd start netstat -lntp|grep 80 lsof -i :80
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
8、apache加入系统服务,自动启动
为了让apache开机启动,我们可以把apachectl启动脚本加入rc.local文件中,如下:
echo "/usr/local/apache2/bin/apachectl start">>/etc/rc.local cat /etc/rc.local
9、把服务加入systemctl控制
(1)打开 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)
#chkconfig: 2345 10 90 #description: Activates/Deactivates Apache Web Server
加上上面这两行就可以,#必须有 其中:2345是设为要启动的运行级别,10是启动优先级,90是杀死进程的优先级,谁优先谁先挂的意思。
(2)chkconfig添加
chkconfig --add httpd chkconfig httpd on
10、登录地址显示It's Work则成功
11、需要修改下配置文件使apache支持php
[root@localhost ~]# vi /usr/local/apache2/conf/httpd.conf
(1)在“DirectoryIndex index.html”后面添加“index.php”
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
(2)在“AddType application/x-gzip .gz .tgz”后面添加一行“AddType application/x-httpd-php .php”
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
12、配置网站目录(后期的网站妨碍哪里)
[root@localhost ~]# vi /usr/local/apache2/conf/httpd.conf
DocumentRoot "/data/wwwroot"
<Directory "/data/wwwroot">
13、测试配置文件是否成功
[root@localhost htdocs]# /usr/local/apache2/bin/apachectl -t Syntax OK
三、Mysql(源码安装):
1、安装编译软件及相关环境
[root@localhost backupdata]#yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl make cmake libaio-devel
2、安装mysql需要用到的软件
mysql-5.7.20.tar.gz和boost_1_59_0.tar.gz
3、解压boost
[root@localhost backupdata]# tar zxvf boost_1_59_0.tar.gz [root@localhost backupdata]# mv boost_1_59_0 /usr/local/boost
4、解压mysql
[root@localhost backupdata]# tar zxvf mysql-5.7.20.tar.gz
5、准备工作:用户创建:
yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl make cmake groupadd mysql useradd -r -g mysql -s /bin/false -M mysql mkdir -p /var/mysql/{data,log,tmp} ls /var/mysql/ chown -R mysql:mysql /var/mysql/
6、编译mysql
解压两个压缩文件,MySQL和Boost,然后开始进行编译安装:
[root@localhost mysql-5.7.20]# cmake . -DCMAKE_INSTALL_PREFIX=/var/mysql -DMYSQL_DATADIR=/data/mysql_data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DIGNORE_AIO_CHECK=1
7、安装mysql
[root@localhost mysql-5.7.20]# make && make install
9、添加环境变量
然后我们先把安装目录添加到环境变量中:
[root@mdw mysql]# echo "export PATH=$PATH:/var/mysql/bin">>/etc/profile [root@mdw mysql]# source /etc/profile
10、初始化数据库
[root@mdw datafile]# mysqld --defaults-file=/etc/my.cnf --initialize --user='mysql' --log_error_verbosity --explicit_defaults_for_timestamp
11、启动数据库
[root@localhost data]# mysqld --user=root &
12、无密码数据库
配置/etc/my.cnf,增加如下配置,并重启数据库
skip-grant-tables
13、直接登录数据库进行密码修改
mysql> use mysql; mysql> update user set authentication_string = password ('Data123') where user = 'root';
14、修改完成,重新把参数改回去,重启服务
(1)注释掉参数
注释掉/etc/my.cnf的参数skip-grant-tables
(2)重新修改密码:
[root@localhost config]# mysql -uroot -pData123 mysql> set password for root@localhost = password('Data123');
四、安装PHP
1、安装依赖
[root@localhost ~]# yum install -y php-gd php-xml php-process php-mbstring php-bcmath php-mysql libxml2 libxml2-devel curl-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libzip-devel pcre-devel
2、解压
[root@localhost php-7.2.4]# tar xvf php-7.2.4.tar.bz2 [root@localhost backupdata]# cd php-7.2.4/
3、编译
注意,
编译过程需要带上apache2的路径及参数,用于安装libphp7.so到apache,以便apache关联php。
curl也要带上。
[root@localhost php-7.2.4]# ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib --with-mysqli --with-pdo-mysql --with-curl --enable-mbstring --with-gd --with-png-dir=/usr/lib64 --with-jpeg-dir=/usr/lib64 --with-freetype-dir=/usr/lib64 --with-openssl-dir=/usr/lib64/openssl --with-openssl --enable-fpm
4、安装
[root@localhost ~]# make && make install
5、配置PHP与Apache的关联
(1)编辑配置文件
vi /usr/local/apache/conf/httpd.conf
(2)配置如下三个位置
①:允许重写 LoadModule rewrite_module modules/mod_rewrite.so ②:启用php7 LoadModule php7_module modules/libphp7.so ③:配置PHP与Apache的关联
<FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch>
五、测试
1、到apache网站代码目录中新建index.php文件
[root@localhost ~]# vi /data/wwwroot/index.php
并输入下面的代码(此段代码的作用是输出php的信息):
<?php phpinfo(); ?>
2、网页访问:192.168.20.31
只要出来这个网站,说明我们上面做的工作都ok了。apache关联PHP是可以的。
六、部署安装网站
1、数据库创建wecenter数据库及用户
(1)创建数据库
[root@localhost config]# mysql -uroot -pData123 mysql> create database wecenter;
(2)查看创建的数据库
mysql> show databases;
(3)创建wecenter用户并设置密码Data123
mysql> grant all privileges on wecenter.* to 'wecenter'@'localhost' identified by 'Data123';
mysql> flush privileges;
(4)查看创建的用户
mysql> select user,host from mysql.user;
(5)配置可以远程通过root访问
mysql> update mysql.user set host='%' where user='wecenter'; mysql> flush privileges; mysql> select user,host from mysql.user;
2、网站安装前准备
(1)删除测试的index.php
(2)更改wwwroot权限
[root@localhost wwwroot]# cd /data/ [root@localhost data]# chown -R daemon:daemon wwwroot [root@localhost data]# ll total 0 drwxr-xr-x 5 mysql mysql 182 Feb 18 11:35 mysql_data drwxr-xr-x 15 daemon daemon 324 Feb 19 10:28 wwwroot
3、下载网站安装包并解压到/data/wwwroot:
[root@localhost wwwroot]# unzip WeCenter_3-3-0.zip [root@localhost wwwroot]# mv WeCenter330/ ./
4、安装网站
(1)登录网站
http://192.168.20.31/install/
(2)进行安装前验证
验证所有文件都为OK,才可以进行下一步,如果中间有权限问题,则解决权限问题。如果有服务没有安装,则需要单独安装服务,比如curl(在php安装时没有weith-curl,可能导致无法进行下一步)
(3)填写数据信息
(4)创建管理员信息
(5)登录查看网站
5、数据还原
(1)从源数据库导出数据
[root@localhost 1_backup]# mysqldump -uroot -pAnshangsoft wecenter >wecenter.sql
(2)导入新库
mysql> use wecenter mysql> source /data/wecenter.sql;
登录网站查看数据是否ok.