1. Mysql-5.6.40
软件包存放目录:/usr/local/src/
1.1 安装mysql
cd /usr/local/src/
# 1.切换到软件包目录
wget http://...mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
# 2.获取php5.6.40源码包
tar zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
# 3.解压
mkdir /usr/local/mysql
# 4.查看是否有 /usr/local/mysql这个文件夹,如果有那就重命名(mv) mysqlold。
# 然后创建(mkdir)/usr/local/mysql这个文件夹
cd mysql-5.6.43-linux-glibc2.12-x86_64
mv * /usr/local/mysql
# 5.将解压出来的文件移到/usr/local/mysql文件夹内
mkdir -p /data/mysql
# 6.创建数据库存放位置的文件夹
useradd -s /sbin/nologin mysql
# 7.创建mysql用户
chown -R mysql:mysql /data/mysql
# 8.更改文件夹权限
yum -y install perl-Module-Install
# 9.安装依赖包
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
# 10.安装mysql,如果成功/data/mysql目录下将会有文件和目录
1.2 配置mysql
cd /usr/local/mysql
cp support-files/my-default.cnf /etc/my.cnf
# 1.将mysql源码包内的默认配置文件放入并命名 /etc/my.cnf
vim /etc/my.cnf
basedir = /usr/local/mysql # 源码存放目录
datadir = /data/mysql # 上文数据库存放目录
port = 3306 # 端口
server_id = 128 # 服务id
socket = /tmp/mysql.sock
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
# 2.进入并修改/etc/my.cnf文件
# 开始设置自启动
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
vim /etc/init.d/mysqld
修改:
datadir=/data/mysql
# 3.复制文件,修改权限,修改配置
chkconfig --add mysqld
chkconfig mysqld on
service mysqld on
# 4.设置开机自启和启动服务
2. Apache-2.4.54
软件包存放目录:/usr/local/src/
2.1 安装apache
cd /usr/local/src
wget http://...httpd-2.4.54.tar.gz
wget http://...apr-1.7.0.tar.gz
wget http://...apr-util-1.6.1.tar.gz
tar zxvf httpd-2.4.54.tar.gz
tar zxvf apr-1.7.0.tar.gz
tar zxvf apr-util-1.6.1.tar.gz
# 1.获取并解压源码包
yum -y install expat-devel libxml2-devel pcre pcre-devel
# 2.安装依赖包
cd /usr/local/src/apr-1.7.0
./configure --prefix=/usr/local/apr
make && make install
# 3.编译并安装apr
cd /usr/local/src/apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
# 4.编译并安装apr-util
cd /usr/local/src/httpd-2.4.54
./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
make && make install
# 5.编译并安装apache,如果安装成功那么/usr/local/apache2.4目录下将会有文件和目录
如果需要重新编译,需要使用
make clean
清除之前的缓存
2.2 配置虚拟主机
vim /usr/local/apache2.4/conf/httpd.conf
# 修改
#Include conf/extra/httpd-vhosts.conf
->
Include conf/extra/httpd-vhosts.conf
# 1.让配置文件生效
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
# 修改
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com # 管理员邮箱 可忽略
DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com" # 网站根目录
ServerName dummy-host.example.com # 网站web站点名
ServerAlias www.dummy-host.example.com # 站点别名 可忽略
ErrorLog "logs/dummy-host.example.com-error_log" # 错误访问日志
CustomLog "logs/dummy-host.example.com-access_log" common # 成功访问日志
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/local/apache2.4/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
->
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/test.com"
ServerName test.com
ServerAlias www.test.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host2.example.com
# DocumentRoot "/usr/local/apache2.4/docs/dummy-host2.example.com"
# ServerName dummy-host2.example.com
# ErrorLog "logs/dummy-host2.example.com-error_log"
# CustomLog "logs/dummy-host2.example.com-access_log" common
#</VirtualHost>
# 2.修改虚拟主机配置文件 test.com访问主机的/usr/local/apache2.4/test.com目录
mkdir /usr/local/apache2.4/test.com
echo "test.com" > /usr/local/apache2.4/test.com/index.html
# 3.创建/usr/local/apache2.4/test.com目录,并创建网站主页
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
# 4.检查配置文件,重新加载http服务
curl -x127.0.0.1:80 www.test.com
# 5.检查虚拟主机是否正常 正常输出是 test.com
2.3 用户认证
vim /usr/local/apache2.4/conf/httpd.conf
# 修改
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/test.com"
ServerName test.com
ServerAlias www.test.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
->
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/test.com"
ServerName test.com
ServerAlias www.test.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
<Directory "/usr/local/apache2.4/test.com"> # 保护目录
AllowOverride AuthConfig # 认证开关
AuthName "test.com user auth" # 认证名字,可无
AuthType Basic # 认证类型,一般为Basic
AuthUserFile /data/.htpasswd # 密码文件目录
require valid-user # 指定需要认证的用户
</Directory>
</VirtualHost>
# 1.修改配置文件
/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd user1
# 2.创建认证用户 user1 -c创建 -m密码加密方式
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
# 3.检查配置文件,重新加载http服务
2.4 域名跳转
vim /usr/local/apache2.4/conf/httpd.conf
# 修改
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/test.com"
ServerName test.com
ServerAlias www.test.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
<Directory "/usr/local/apache2.4/test.com">
AllowOverride AuthConfig
AuthName "test.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>
</VirtualHost>
->
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/test.com"
ServerName test.com
ServerAlias www.test.com
<IfModule mod_rewrite.c> # 需要mod_rewrite模块
RewriteEngine on # 打开rewrite功能
RewriteCond %{HTTP_HOST} !^test.com$ # 当主机名不是test.com时触发下面条件
RewriteRule ^/(.*)$ http://test.com/$1 [R=301,L]
</IfModule>
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
# 1.修改配置文件
vim /usr/local/apache2.4/conf/httpd.conf
#修改
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule rewrite_module modules/mod_rewrite.so
# 2.修改配置文件,让rewrite模块生效
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
# 3.检查配置文件,重新加载http服务
/usr/local/apache2.4/bin/apachectl -M | grep -i rewrite
# 4.查看模块是否生效,生效会提示 rewrite_module (shared)
curl -x127.0.0.1:80 -I 123.com
HTTP/1.1 301 Moved Permanently
Date: Tue, 06 Sep 2022 08:06:04 GMT
Server: Apache/2.4.54 (Unix) PHP/5.6.40
Location: http://test.com/
Content-Type: text/html; charset=iso-8859-1
# 5.查看跳转是否正常,正常 状态码为301,location为test.com
3.PHP-5.6.40
软件包存放目录:/usr/local/src/
3.1 安装php
cd /usr/local/src
wget http://...php-5.6.40.tar.gz
tar zxvf php-5.6.40.tar.gz
# 1.获取并解压php源码包
yum -y install libxml2 openssl openssl-devel bzip2 bzip2-devel
yum -y install libjpeg libjpeg-devel libpng libpng-devel
# 获取下面的依赖包
rpm -ivh freetype-2.8-14.el7_9.1.x86_64.rpm
rpm -ivh freetype-devel-2.8-14.el7_9.1.x86_64.rpm
rpm -ivh libmcrypt-2.5.8-13.el7.x86_64.rpm
rpm -ivh libmcrypt-devel-2.5.8-13.el7.x86_64.rpm
# 2.安装依赖包
./configure -prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysq1=/usr/1ocal/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
make && make install
# 3. 编译并安装
3.2 配置php
cd /usr/local/src/php-5.6.40
cp php.ini-production /usr/local/php/etc/php.ini
# 复制配置文件
4.整合
4.1 配置httpd支持php
vim /usr/local/apache2.4/conf/httpd.conf
#修改
#ServerName www.example.com:80
->
ServerName www.example.com:80
#修改
<Directory />
AllowOverride none
Require all denied
</Directory>
->
<Directory />
AllowOverride none
Require all granted
</Directory>
#添加(在AddType application/x-gzip .gz .tgz 下)
AddType application/x-httpd-php .php
#修改
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
->
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
# 1.进入apache的配置文件并修改
/usr/local/apache2.4/bin/apachectl -t
# 2.检验apache配置文件是否正确,正确会显示Syntax OK
/usr/local/apache2.4/bin/apachectl start
# 3.开启apache
4.2 检测LAMP环境是否正确
curl localhost
# 1.检查apache是否正确
vim /usr/local/apache2.4/htdocs/test.php
<?php echo"php OK";?>
curl localhost/test.php
# 2.检查php是否正确
cd /usr/local/mysql/bin/
./mysql
# 3.检查mysql是否正确