LAMP架构搭建

版权声明:未经本人允许严禁转载 https://blog.csdn.net/WanJiaBaoBao/article/details/82859123

搭建要求

  • 源码安装apr和apr-util;
  • 源码安装httpd服务;
  • 二进制格式安装mysql服务;
  • 源码安装php.

搭建环境

搭建顺序

  • 搭建httpd服务;
  • 搭建mysql服务;
  • 搭建php。

搭建步骤

  • 首先源码安装httpd服务;
## 搭建好本地仓库,安装源码所需的开发包 ##
[root@localhost ~]# vi /etc/yum.repos.d/yum.repo
[yum.repo]
name=yum.repo
baseurl=file:///mnt
gpgcheck=0
enabled=1
[root@localhost ~]# yum group mark install 'Development Tools'

## 创建httpd服务所需的本地用户和组 ##
[root@localhost ~]# useradd -r -M -s /sbin/nologin apache
[root@localhost ~]# id apache
uid=998(apache) gid=997(apache) groups=997(apache)

## 安装所需的依赖包 ##
[root@localhost ~]# yum -y install openssl-devel pcre-devel expat-devel libtool

## 下载apr、apr-util以及httpd源码包 ##
[root@localhost ~]# wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.5.tar.bz2
[root@localhost ~]# wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.bz2
[root@localhost ~]# wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.34.tar.bz2

## 解压并安装apr、apr-util、httpd源码包 ##
[root@localhost ~]# tar -xf apr-1.6.5.tar.bz2 
[root@localhost ~]# cd apr-1.6.5
[root@localhost apr-1.6.5]# ./buildconf
[root@localhost apr-1.6.5]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.6.5]# make -j 2 && make install

[root@localhost ~]# tar -xf apr-util-1.6.1.tar.bz2
[root@localhost ~]# cd apr-util-1.6.1
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]# make -j 2 && make install

[root@localhost ~]# tar -xf httpd-2.4.34.tar.bz2 
[root@localhost ~]# cd httpd-2.4.34
[root@localhost ~]# ./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
[root@localhost httpd-2.4.34]# make -j 2 && make install

## 安装后配置 ##
[root@localhost ~]# echo "export PATH=/usr/local/apache/bin:$PATH" > /etc/profile.d/apache.sh
[root@localhost ~]# source /etc/profile.d/apache.sh 
[root@localhost ~]# echo $PATH
/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@localhost ~]# echo "MANPATH /usr/local/apache/man" >> /etc/man.config
[root@localhost ~]# vim /etc/httpd24/httpd.conf
ServerName www.example.com:80      #取消这行注释,保存退出

## 启动httpd服务,并查看监听端口 ##
[root@localhost ~]# apachectl start
[root@localhost ~]# ss -ntlp
LISTEN     0      128    :::80     :::*      users:(("httpd",3013,4),("httpd",3012,4),("httpd",3011,4),("httpd",3010,4),("httpd",3009,4),("httpd",3008,4))
  • 安装mysql服务;
## 安装依赖包 ##
[root@localhost ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel

## 创建用户和组 ##
[root@localhost ~]# useradd -r -M -s /sbin/nologin mysql
[root@localhost ~]# id mysql
uid=997(mysql) gid=995(mysql) groups=995(mysql)

## 下载二进制格式的mysql软件包 ##
[root@localhost ~]# wget https://downloads.mysql.com/archives/get/file/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

## 解压软件至/usr/local/目录下 ##
[root@localhost ~]# tar -xf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -s mysql-5.7.22-linux-glibc2.12-x86_64 mysql

## 修改目录/usr/local/mysql的属主和属组 ##
[root@localhost local]# chown -R mysql.mysql mysql
[root@localhost local]# ll -d mysql
lrwxrwxrwx. 1 mysql mysql 35 Sep 27 05:35 mysql -> mysql-5.7.22-linux-glibc2.12-x86_64

## 添加环境变量 ##
[root@localhost local]# echo "export PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh
[root@localhost local]# source /etc/profile.d/mysql.sh
[root@localhost local]# echo $PATH
/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

## 建立数据存放目录,并修改属主和属组 ##
[root@localhost local]# mkdir /opt/data
[root@localhost local]# chown -R mysql.mysql /opt/data
[root@localhost local]# ll -d /opt/data
drwxr-xr-x. 2 mysql mysql 6 Sep 27 05:37 /opt/data

## 初始化数据库,记住初始密码 ##
[root@localhost local]# mysqld --initialize --user=mysql --datadir=/opt/data/
2018-09-26T21:43:22.340764Z 1 [Note] A temporary password is generated for root@localhost: lD;rjo>=_4lG
注:初始密码为:“lD;rjo>=_4lG”,密码是随机的,每次密码都不一样。

## 配置mysql ##
[root@localhost local]# ln -s include/ /usr/local/include/mysql
[root@localhost local]# echo "/usr/local/mysql/lib/" > /etc/ld.so.conf.d/mysql.conf
[root@localhost local]# ldconfig -v

## 生成配置文件 ##
[root@localhost local]# cat > /etc/my.cnf <<EOF
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
EOF

## 配置服务启动脚本 ##
[root@localhost local]# cp -a mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost local]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql     #添加安装路径
datadir=/opt/data      #添加数据存放路径

## 启动mysql,并查看监听端口 ##
[root@localhost local]# service mysqld start
Starting MySQL.Logging to '/opt/data/localhost.localdomain.err'.
 SUCCESS! 
 LISTEN     0      80     :::3306      :::*      users:(("mysqld",3331,20))

## 使用初始密码登录数据库,修改密码 ##
[root@localhost local]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
mysql> set password=password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
注:出现密码强度问题则需要修改一下两条:
set global validate_password_policy=0;
set global validate_password_length=1;

## 重新登录数据库验证密码是否修改成功 ##
[root@localhost local]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.22 MySQL Community Server (GPL)
help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
  • 安装php;
## 下载网络源,并修改网络源配置文件 ##
[root@localhost local]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0   1114      0  0:00:02  0:00:02 --:--:--  1115
[root@localhost local]# sed -i "s/\$releasever/7/g" /etc/yum.repos.d/CentOS-Base.repo
[root@localhost local]# yum -y install epel-release

## 安装依赖包 ##
[root@localhost ~]# yum -y install 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 mhash mhash-devel

## 下载php ##
[root@localhost ~]# wget http://php.net/get/php-7.2.10.tar.bz2/from/a/mirror

## 编译安装php ##
[root@localhost ~]# tar -xf php-7.2.10.tar.xz 
[root@localhost ~]# cd php-7.2.10
[root@localhost ~]# ./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=/usr \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-jpeg-dir \
--with-png-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--with-bz2 \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip
[root@localhost php-7.2.10]# make -j 2 && make install

## 安装后配置 ##
[root@localhost php-7.2.10]# echo "export PATH=/usr/local/php7/bin:$PATH" > /etc/profile.d/php7.sh
[root@localhost php-7.2.10]# source /etc/profile.d/php7.sh
[root@localhost php-7.2.10]# echo $PATH
/usr/local/php7/bin:/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
[root@localhost php-7.2.10]# php -v    #查看php版本
PHP 7.2.10 (cli) (built: Sep 27 2018 06:21:46) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

## 配置php-fpm ##
[root@localhost php-7.2.10]# cp php.ini-production /etc/php.ini
[root@localhost php-7.2.10]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-7.2.10]# chmod +x /etc/rc.d/init.d/php-fpm 
[root@localhost php-7.2.10]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@localhost php-7.2.10]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

## 编辑php-fpm的配置文件(/usr/local/php7/etc/php-fpm.conf)##
[root@localhost php-7.2.10]# vim /usr/local/php7/etc/php-fpm.conf
添加如下配置:
pm.max_children = 50         #最多同时提供50个进程,提供50个并发服务
pm.start_servers = 5         #启动时启动5个进程
pm.min_spare_servers = 2     #最小空闲进程
pm.max_spare_servers = 8     #最大空闲进程

[root@localhost php-7.2.10]# tail /usr/local/php7/etc/php-fpm.conf
;  - /usr/local/php7 otherwise
include=/usr/local/php7/etc/php-fpm.d/*.conf
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8

## 启动php-fpm,并查看监听端口 ##
[root@localhost init.d]# service php-fpm start
Starting php-fpm  done
[root@localhost init.d]# ss -ntlp
LISTEN     0      128    127.0.0.1:9000       *:*      users:(("php-fpm",37146,5),("php-fpm",37145,5),("php-fpm",37144,5),("php-fpm",37143,5),("php-fpm",37142,5),("php-fpm",37141,7))
  • 配置apache
## 启动httpd的相关模块 ##
[root@localhost init.d]# sed -i '/proxy_module/s/#//g' /etc/httpd24/httpd.conf 
[root@localhost init.d]# sed -i '/proxy_fcgi_module/s/#//g' /etc/httpd24/httpd.conf

## 配置虚拟主机,创建虚拟主机目录并生成php测试页面 ##
[root@localhost ~]# mkdir /usr/local/apache/htdocs/qwer.com
添加以下几行:
<?php
        phpinfo();
?>

[root@localhost ~]# chown -R apache.apache /usr/local/apache/htdocs/
[root@localhost ~]# vim /etc/httpd24/httpd.conf
添加一下几行内容:
<VirtualHost *:80>
        DocumentRoot "/usr/local/apache/htdocs/qwer.com"
        ServerName www.qwer.com
        ProxyRequests Off
        ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/qwer.com/$1
        <Directory "/usr/local/apache/htdocs/qwer.com">
                Options none
                AllowOverride none
                Require all granted
        </Directory>
</VirtualHost>

[root@localhost ~]# vim /etc/httpd24/httpd.conf
搜索AddType,添加一下两行内容:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

[root@localhost ~]# cat /etc/httpd24/httpd.conf
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

[root@localhost ~]# vim /etc/httpd24/httpd.conf
搜索Directoryindex,将index.html修改为index.php index.html
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

## 重启httpd服务 ##
[root@localhost ~]# apachectl restart
[root@localhost ~]# ss -ntlp
LISTEN     0      128    :::80     :::*      users:(("httpd",37351,4),("httpd",37350,4),("httpd",37349,4),("httpd",37348,4),("httpd",37347,4),("httpd",3008,4))
  • 检验
## 在windows中,修改C:\Windows\System32\drivers\etc\hosts文件 ##
192.168.91.129	www.qwer.com

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/WanJiaBaoBao/article/details/82859123