源码部署LAMP
一、安装httpd
在官网下载安装包http://archive.apache.org/
[root@localhost ~]# wget http://archive.apache.org/dist/apr/apr-1.7.4.tar.gz
[root@localhost ~]# wget http://archive.apache.org/dist/apr/apr-util-1.6.3.tar.gz
[root@localhost ~]# wget http://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz
#解压安装包
[root@localhost ~]# tar xf apr-1.7.4.tar.gz
[root@localhost ~]# tar xf apr-util-1.6.3.tar.gz
[root@localhost ~]#tar xf httpd-2.4.57.tar.gz
#下载依赖包
[root@localhost ~]# yum -y install gcc gcc-c++ zlib zlib-devel expat-devel pcre-devel make wget tar net-tools
#复制
[root@localhost ~]# cp -r apr-1.7.4 httpd-2.4.57/srclib/apr
[root@localhost ~]# cp -r apr-util-1.6.3 httpd-2.4.57/srclib/apr-util
#编译文件
[root@localhost ~]# cd httpd-2.4.57
[root@localhost httpd-2.4.57]# ./configure --prefix=/usr/local/apache/ --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite-shared
[root@localhost httpd-2.4.57]# make && make install
#创建apache
[root@localhost ~]# groupadd apache
[root@localhost ~]# useradd apache -g apache -M -s /bin/false
[root@localhost ~]# id apache
uid=1000(apache) gid=1000(apache) groups=1000(apache)
#给 /usr/local/apache/权限
[root@localhost ~]# chown -R apache.apache /usr/local/apache/
#配置apache环境变量
[root@localhost ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@localhost ~]# source /etc/profile.d/httpd.sh
[root@localhost ~]# which httpd
/usr/local/apache/bin/httpd
#链接头文件
[root@localhost ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@localhost ~]# sed -i '/#ServerName/s/#//g' /usr/local/apache/conf/httpd.conf
#启动服务
[root@localhost ~]# apachectl start
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
二、安装mysql
#安装mysql软件包
[root@localhost ~]# yum -y install mariadb*
[root@localhost ~]# systemctl enable --now mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
#给mysql创建新密码
[root@localhost ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> set password = password("000000");
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit
#进入mysql查看
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.3.28-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> quit
Bye
三、安装php
在官网下载安装包https://www.php.net/
[root@localhost ~]# wget https://www.php.net/distributions/php-8.2.6.tar.gz
#下载依赖包
[root@localhost ~]# yum -y install libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel libwebp-devel libXpm-devel freetype-devel oniguruma libzip-devel sqlite-devel.x86_64 libcurl libcurl-devel
#解压缩安装包
[root@localhost ~]# tar xf php-8.2.6.tar.gz
#编译php
[root@localhost ~]# cd php-8.2.6
[root@localhost php-8.2.6]# ./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-fpm --enable-inline-optimization --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-zlib --with-curl --with-gd --with-jpeg --with-png --with-webp --with-xpm --with-freetype --with-bz2 --with-libzip --with-onig
[root@localhost php-8.2.6]# make && make install
#配置php的环境变量
[root@localhost ~]# echo 'export PATH=/usr/local/php/bin:$PATH' > /etc/profile.d/php.sh
[root@localhost ~]# source /etc/profile.d/php.sh
[root@localhost ~]# which php
/usr/local/php/bin/php
#查看php的版本号
[root@localhost ~]# php -v
PHP 8.2.6 (cli) (built: May 23 2023 21:14:29) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.6, Copyright (c) Zend Technologies
#复制php
[root@localhost php-8.2.6]# cp php.ini-production /etc/php.ini
[root@localhost php-8.2.6]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#给 /etc/rc.d/init.d/php-fpm加可执行权限
[root@localhost php-8.2.6]# chmod +x /etc/rc.d/init.d/php-fpm
[root@localhost php-8.2.6]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@localhost php-8.2.6]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
#启动服务
[root@localhost php-8.2.6]# service php-fpm start
Starting php-fpm done
[root@localhost php-8.2.6]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
LISTEN 0 80 0.0.0.0:3306 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
四、配置apache
[root@localhost]# vim /usr/local/apache/conf/httpd.conf
#进入文件
#取消注释 LoadModule proxy_module modules/mod_proxy.so
#取消注释 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
五、配置虚拟化
#创建php测试页面
[root@localhost]# cd /usr/local/apache/htdocs
[root@localhost htdocs]# mkdir wjl
[root@localhost htdocs]# cd
[root@localhost ~]# cd /usr/local/apache/htdocs
[root@localhost htdocs]# cd wjl
[root@localhost wjl]#
[root@localhost wjl]# vi index.php
<?php
phpinfo();
?>
[root@localhost htdocs]# chown -R apache.apache /usr/local/apache
#修改配置文件
[root@localhost ~]# vi /usr/local/apache/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.php index.html #在前面添加index.php
</IfModule>
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#在后面加上
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#在文件末尾添加
<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs/wjl" #网站位置
ServerName www.wjl.com #域名
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/wjl/$1
<Directory "/usr/local/apache/htdocs/wjl">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
查看php网站页面
#重启服务
[root@localhost conf]# service php-fpm stop
Gracefully shutting down php-fpm warning, no pid file found - php-fpm is not running ?
[root@localhost conf]# service php-fpm start
Starting php-fpm done
[root@localhost conf]# apachectl stop
[root@localhost conf]# apachectl start
[root@localhost conf]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
LISTEN 0 80 0.0.0.0:3306 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128