Linux基础服务7——lamp架构

news2024/9/20 22:49:45

文章目录

  • 一、基本了解
  • 二、单机部署LAMP
    • 2.1 安装httpd
    • 2.2 安装mysql
    • 2.3 安装php环境
    • 2.4 配置apache
  • 三、分离部署
  • 四、脚本单机部署

一、基本了解

LAMP架构介绍:

  • lamp是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件。
  • LAMP指Linux(操作系统)、Apache(HTTP服务器)、MySQL(也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。

cgi与fastcgi概念:

  1. CGI(Common Gateway Interface,通用网关接口),CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
  2. FastCGI(Fast Common Gateway Interface)是CGI的改良版,CGI是通过启用一个解释器进程来处理每个请求,耗时且耗资源,而FastCGI则是通过master-worker形式来处理每个请求,即启动一个master主进程,然后根据配置启动几个worker进程,当请求进来时,master会从worker进程中选择一个去处理请求,这样就避免了重复的生成和杀死进程带来的频繁cpu上下文切换而导致耗时

静态资源和动态资源:

  • 静态资源指静态内容,客户端从服务器获得的资源的表现形式与原文件相同。简单说就是直接存储于文件系统中的资源。
  • 动态资源则通常是程序文件,需要在服务器执行之后,将执行的结果返回给客户端。

web服务器工作流程:

  • ①显示的是httpd服务器(即apache)和php服务器通过FastCGI协议进行通信,且php作为独立的服务进程运行阶段。
  • ②显示的是php程序和mysql数据库间通过mysql协议进行通信。php与mysql本没有什么联系,但是由php语言写成的程序可以与mysql进行数据交互。同理perl和python写的程序也可以与mysql数据库进行交互。
    在这里插入图片描述
  • 步骤一:客户端通过http/https协议请求web服务器资源。
  • 步骤二:web服务器收到请求后判断客户端请求的资源是静态资源或是动态资源。
    • 若是静态资源则直接从本地文件系统取之返回给客户端。
    • 若为动态资源则通过FastCGI协议与php服务器联系,通过CGI程序的master进程调度worker进程来执行程序以获得客户端请求的动态资源,并将执行的结果通过FastCGI协议返回给httpd服务器,httpd服务器收到php的执行结果后将其封装为http响应报文响应给客户端。在执行程序获取动态资源时,若需要获得数据库中的资源时,由php服务器通过mysql协议与MySQL/MariaDB服务器交互,取之而后返回给httpd,httpd将从php服务器收到的执行结果封装成http响应报文响应给客户端。

httpd与php结合的三种方式:

  1. modules:php将以httpd的扩展模块形式存在,需要加载动态资源时,httpd可以直接通过php模块来加工资源并返回给客户端。
    • httpd prefork:libphp5.so(多进程模型的php)
    • httpd event or worker:libphp5-zts.so(线程模型的php)
  2. CGI:httpd需要加载动态资源时,通过CGI与php解释器联系,获得php执行的结果,此时httpd负责与php连接的建立和断开等。
  3. FastCGI:利用php-fpm机制,启动为服务进程,php自行运行为一个服务,https通过socket与php通信,推荐。

三种方式的特点:

  • CGI方式:极耗资源。由于CGI是非常驻内存集,每次Webserver接受客户端的HTTP请求,然后建立进程执行CGI程序,客户端的请求被传递给CGI程序,CGI执行后结果再返回Webserver。 每次浏览页面都要重复上面的动作,会有非常大的消耗。
  • mod_php方式:效率较高。此种方式运行意味着php是作为apache的一个模块来启动的,因此只有在apache启动的时候会加载扩展模块,在apache运行期间是不会再去读取和加载扩展模块的。使用mod_php的方式运行PHP效率比CGI方式更高。
  • FastCGI方式:使用php-fpm单独管理php进程池,PHP-FPM简单可靠的 FastCGI 进程管理器(FastCGI Process Manager),FastCGI是一个常驻型的CGI,可以一直执行,只要激活后,而且还支持分布式运算(使得php程序解释执行可以单独交给php服务器),即可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。而mod_php与fastcgi相比,俩者都有进程池的概念,但是,fastcgi将服务器端动、静态请求更好的分离。php进程除了问题不会将web服务器也当掉。

二、单机部署LAMP

系统平台IP需要安装的服务
centos7
redhat7
192.168.130.160httpd-2.4
mysql-5.7
php
php-mysql
  • lamp平台软件安装次序:httpd ——> mysql ——> php。
  • 注意,php要求httpd使用prefork MPM。

2.1 安装httpd

1.配置yum源。

//配置CentOS源。
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

//配置epel源。
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

2.安装开发工具包。

yum groups mark install "Development Tools"

3.创建apache服务的用户和组。

useradd -r -M -s /sbin/nologin  apache

4.安装依赖包。

yum -y install  make openssl-devel pcre-devel expat-devel libtool gcc gcc-c++

5.下载和安装apr以及apr-util,官网地址。

cd /usr/src/
wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz
wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz

6.解压安装包,修改配置文件,开始编译安装。

//解压安装包。
tar zxf apr-1.7.4.tar.gz 
tar zxf apr-util-1.6.3.tar.gz 
tar zxf httpd-2.4.57.tar.gz 

//修改配置文件,编译安装apr。
cd apr-1.7.4
sed -i '/$RM "$cfgfile"/d' configure
./configure --prefix=/usr/local/apr
make
make install

//编译安装apr-util。
cd ../apr-util-1.6.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install

//编译安装httpd。
cd ../httpd-2.4.57
./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
make
make install

7.配置环境变量。

echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
source /etc//profile.d/httpd.sh 

8.做软连接。

ln -s /usr/local/apache/include /usr/include/apache

9.取消配置文件注释,避免出现提示信息。

sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf

10.关闭防火墙和selinux,启动服务,访问网页。

apachectl start

systemctl  stop firewalld
systemctl  disable firewalld
setenforce 0

在这里插入图片描述

2.2 安装mysql

1.安装依赖包。

yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel libncurses.so.5*

2.创建系统用户。

useradd -r -M -s /sbin/nologin mysql

3.官网下载安装包,上传服务器解压,官网。

wget  https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz --no-check-certificate
tar xf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

4.做软连接,修改属主属组,设置环境变量。

cd /usr/local/
ln -s mysql-5.7.41-linux-glibc2.12-x86_64 mysql

echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh 

5.建立数据存放目录。

mkdir /opt/data
chown -R mysql.mysql /opt/data

6.初始化数据库,编辑生成的配置文件内容。

mysqld --initialize-insecure --datadir=/opt/data --user=mysql 

//先备份配置文件。
mv /etc/my.cnf{,-bak}

//配置文件内容。
[root@localhost ~]# vim /etc/my.cnf
[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

7.做软连接。

//include做软连接。
ln -s /usr/local/mysql/include /usr/include/mysql

//lib做软连接。
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig 

8.配置服务启动脚本。

cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld

cat >> /etc/init.d/mysqld << EOF
basedir=/usr/local/mysql  
datadir=/opt/data 
EOF

9.启动服务,设置密码。

service mysqld start
mysql -e 'set password=password("qingjun");'

2.3 安装php环境

1.安装依赖包。

//先安装普通依赖包。
yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel  pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel   gcc gcc-c++

//再安装php-mysqlnd依赖包。
yum -y install php-mysqlnd 

//若服务器环境默认yum源缺少依赖包,可以使用下面这个源。
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
yum makecache --enablerepo=remi-php74

2.下载php安装包,官网。

cd /usr/src/
wget https://www.php.net/distributions/php-7.2.8.tar.gz --no-check-certificate

3.解压,编译安装。

tar zxf php-7.2.8.tar.gz
cd php-7.2.8

//进入解压目录,先检查环境是否具备编译安装条件。
./configure --prefix=/usr/local/php7  \
--with-config-file-path=/etc \
--enable-fpm \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-openssl \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-exif  \
--enable-ftp \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--with-gettext \
--enable-json \
--enable-mbstring \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-readline \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-pcntl \
--enable-posix

//开始编译安装。
make 
make install

4.配置环境变量。

echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php.sh
source /etc/profile.d/php.sh 

5.配置php-fpm。

cp php.ini-production /etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm

cd /usr/local/php7/etc/
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf

6.修改配置文件,添加如下参数。

cat >> /usr/local/php7/etc/php-fpm.conf << EOF
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8 
EOF

pm.max_children = 50  //最多同时提供50个进程提供50个并发服务
pm.start_servers = 5   //启动时启动5个进程
pm.min_spare_servers = 2    //最小空闲进程数
pm.max_spare_servers = 8    //最大空闲进程数

7.启动php-fpm,查看9000端口。

service php-fpm start

在这里插入图片描述

2.4 配置apache

1.启用代理模块。

//配置文件取消两个注释。
[root@localhost ~]# vim /etc/httpd24/httpd.conf 
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

2.配置虚拟主机。

  • 配置反向代理,ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/$1
  • 表示把以.php结尾的文件请求,通过fcgi协议发送到本地拥有9000端口的进程,也就是php-fpm进程。php前端文件存在位置在/usr/local/apache/htdocs目录,$1表示前面括号里的内容,括号里传递的时$1,则这里就是$1;前面括号里传递的是$2,则这里是$2。
//取消注释,指定读取虚拟主机的配置文件。
[root@localhost ~]# vim /etc/httpd24/httpd.conf 
Include /etc/httpd24/extra/httpd-vhosts.conf

//配置虚拟主机。
vim /etc/httpd24/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs"    //前端文件存放目录。
    ServerName www.baimu.com       //域名。
    ServerAlias www.baimu.com
    ErrorLog "logs/www.baimu.com-error_log"   //错误日志。
    CustomLog "logs/www.baimu.com-access_log" common
    ProxyRequests Off                         //关闭正向代理。
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/$1  //配置反向代理。
    <Directory "/usr/local/apache/htdocs">
        Require all granted     //允许读写。
    </Directory>
</VirtualHost>

3.生成php前端文件。

[root@localhost htdocs]# vim index.php 
<?php
  phpinfo();
?>

//修改前端文件属主属组。
[root@localhost htdocs]# cd ..
[root@localhost apache]# chown -R apache.apache htdocs/

4.修改配置文件,指定访问的前端文件为php的。

vim /etc/httpd24/httpd.conf
//搜索AddType,添加如下2行
......
 AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php        #添加此行
    AddType application/x-httpd-php-source .phps        #添加此行

//搜索index.html
  DirectoryIndex index.php index.html    添加index.php

5.重启服务,访问网页。

apachectl restart

在这里插入图片描述

三、分离部署

主机IP服务环境
192.168.130.160httpd
192.168.130.161mysql
192.168.130.162php

1.安装httpd,参考上文。
在这里插入图片描述
2.安装mysql,参考上文。
在这里插入图片描述
3.安装php,参考上文。提供网站文件,并修改配置文件。

mkdir -p   /usr/local/php7/htdocs/
cd /usr/local/php7/htdocs/
[root@php htdocs]# vim index.php
<?php
    phpinfo();
?>

useradd -r -M -s /sbin/nologin apache
chown -R apache.apache /usr/local/php7/htdocs/
sed -i 's/listen = 127.0.0.1:9000/listen = 0.0.0.0:9000/g' /usr/local/php7/etc/php-fpm.d/www.conf
service  php-fpm restart

在这里插入图片描述
4.修改httpd配置文件。

//启用代理模块,将如下内容注释取消。
[root@apache131 ~]# vim /etc/httpd24/httpd.conf 
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
Include /etc/httpd24/extra/httpd-vhosts.conf

//搜索AddType,添加以下内容。
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

//找到index.html ,添加index.php
 <IfModule dir_module>
    DirectoryIndex  index.php index.html
</IfModule>

5.配置httpd虚拟主机。

//配置虚拟主机
vim /etc/httpd24/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs"
    ServerName www.baimu.com
    ServerAlias www.baimu.com
    ErrorLog "logs/www.baimu.com-error_log"
    CustomLog "logs/www.baimu.com-access_log" common
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.130.162:9000/usr/local/php7/htdocs/$1
    <Directory "/usr/local/apache/htdocs">
        Require all granted
    </Directory>
</VirtualHost>

//重启服务
apachectl restart

6.所有服务器关闭防火墙和selinux,访问apache ip。

在这里插入图片描述

四、脚本单机部署

1.需先准备如下离线包。

2.脚本安装。

[root@localhost lamp]# cat install.sh 
#!/bin/bash
##################################################
##自定义变量。
file_name_1=apr-1.7.4
file_name_2=apr-util-1.6.3
file_name_3=httpd-2.4.57
file_name_4=php-7.2.8
kernel_count=$(grep processor /proc/cpuinfo |wc -l)
apache_dir=/usr/local/apache
mysql_untar=$(echo  mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz|awk -F'.tar' '{print $1}')
mysql_basedir=/usr/local
datadir=/opt/data
read -p "请输入您的密码:" mysql_pass

##################################################
##配置yum源。
mv /etc/yum.repos.d/* /tmp/
cp soft/{CentOS-Base.repo,epel.repo} /etc/yum.repos.d/



##################################################
##安装依赖包。
yum -y groups mark install "Development Tools" &>/dev/null
yum -y install make openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ ncurses-devel openssl cmake mariadb-devel libxml2 libxml2-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php-mysqlnd libncurses.so.5*


###################################################
##安装httpd服务。
id apache &>/dev/null
if [ $? -ne 0 ];then
    useradd -r -M -s /sbin/nologin apache
fi

rm -rf apr* httpd*
tar xf soft/${file_name_1}.tar.gz
tar xf soft/${file_name_2}.tar.gz
tar xf soft/${file_name_3}.tar.gz
cd ${file_name_1}
sed -i '/$RM "$cfgfile"/d' configure
if [ ! -d /usr/local/apr ];then
    ./configure --prefix=/usr/local/apr && \
    make -j $kernel_count && make install
fi
cd ../${file_name_2}
if [ ! -d /usr/local/apr-util ];then
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make -j $kernel_count && make install
fi
cd ../${file_name_3}
if [ ! -d $apache_dir ];then
    ./configure --prefix=$apache_dir \
            --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 && \
    make -j $kernel_count && make install
    echo "export PATH=$apache_dir/bin:\$PATH" > /etc/profile.d/httpd.sh
    ln -s $apache_dir/include /usr/include/httpd
    sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf
    $apache_dir/bin/apachectl start
fi

####################################################
##安装mysql。
cd ../
id mysql &>/dev/null
if [ $? -ne 0 ];then
    useradd -r -M -s /sbin/nologin mysql
fi

if [ ! -d $mysql_basedir/$mysql_untar ];then
    echo "正在解压mysql安装包!!!"  
    tar xf soft/$mysql_untar.tar.gz -C $mysql_basedir && \
    ln -s $mysql_basedir/$mysql_untar $mysql_basedir/mysql &>/dev/null
    chown -R mysql.mysql $mysql_basedir/mysql*
    echo "export PATH=$mysql_basedir/mysql/bin:\$PATH" > /etc/profile.d/mysql.sh
    mkdir -p $datadir
    chown -R mysql.mysql $datadir
    $mysql_basedir/mysql/bin/mysqld --initialize-insecure --datadir=$datadir --user=mysql && \
    ln -s $mysql_basedir/mysql/include /usr/include/mysql &>/dev/null
    echo "$mysql_basedir/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
    ldconfig
cat > /etc/my.cnf <<EOF
[mysqld]
basedir = $mysql_basedir/mysql
datadir = $datadir
socket = /tmp/mysql.sock
port = 3306
pid-file = $datadir/mysql.pid
user = mysql
skip-name-resolve
EOF

    cp -a $mysql_basedir/mysql/support-files/mysql.server /etc/init.d/mysqld
    sed -ri "s#^(basedir=).*#\1$mysql_basedir/mysql#g" /etc/init.d/mysqld
    sed -ri "s#^(datadir=).*#\1$datadir#g" /etc/init.d/mysqld
    service mysqld start
    sleep 5
    $mysql_basedir/mysql/bin/mysql -uroot -e "set password=password('$mysql_pass');" 
fi

############################################
##安装php。
tar zxf soft/${file_name_4}.tar.gz
cd ${file_name_4}
if [ ! -d /usr/local/php7 ];then
    ./configure --prefix=/usr/local/php7  \
        --with-config-file-path=/etc \
        --enable-fpm \
        --enable-inline-optimization \
        --disable-debug \
        --disable-rpath \
        --enable-shared \
        --enable-soap \
        --with-openssl \
        --enable-bcmath \
        --with-iconv \
        --with-bz2 \
        --enable-calendar \
        --with-curl \
        --enable-exif  \
        --enable-ftp \
        --with-gd \
        --with-jpeg-dir \
        --with-png-dir \
        --with-zlib-dir \
        --with-freetype-dir \
        --with-gettext \
        --enable-json \
        --enable-mbstring \
        --enable-pdo \
        --with-mysqli=mysqlnd \
        --with-pdo-mysql=mysqlnd \
        --with-readline \
        --enable-shmop \
        --enable-simplexml \
        --enable-sockets \
        --enable-zip \
        --enable-mysqlnd-compression-support \
        --with-pear \
        --enable-pcntl \
        --enable-posix && \
    make -j $kernel_count && make install
    echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php.sh
    mv /etc/php.ini{,-bak}
    cp php.ini-production /etc/php.ini
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod a+x /etc/init.d/php-fpm
    cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
    cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
    service php-fpm start
fi


#####################################
##配置虚拟主机。
sed -i '/proxy_module/s/#//g' /etc/httpd24/httpd.conf
sed -i '/proxy_fcgi_module/s/#//g' /etc/httpd24/httpd.conf

vhosts_status=$(grep "Include .*vhosts.conf" /etc/httpd24/httpd.conf |grep -v '^#'|wc -l)
if [ $vhosts_status -eq 0 ];then
    echo "Include /etc/httpd24/extra/vhosts.conf" >> /etc/httpd24/httpd.conf
fi

cat > /etc/httpd24/extra/vhosts.conf << EOF
<VirtualHost *:80>
    DocumentRoot "$apache_dir/htdocs"
    ServerName www.example.com
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000$apache_dir/htdocs/$1
    <Directory "$apache_dir/htdocs>
        Require all granted
    </Directory>
</VirtualHost>  
EOF
cat > $apache_dir/htdocs/index.php <<EOF
<?php
   phpinfo();
?>
EOF


chown -R apache.apache $apache_dir/htdocs

sed -i '/AddType application\/x-gzip .gz .tgz/aAddType application/x-httpd-php-source .php' /etc/httpd24/httpd.conf
sed -i '/AddType application\/x-gzip .gz .tgz/aAddType application/x-httpd-php .php' /etc/httpd24/httpd.conf
sed -i '/    DirectoryIndex/s/index.html/index.php index.html/g' /etc/httpd24/httpd.conf


$apache_dir/bin/apachectl restart
service php-fpm restart
service mysqld restart

3.关闭防火墙和selinux,访问网页。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多元回归预测 | Matlab基于深度置信网络(DBN)回归预测,matlab代码回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab多元回归预测 | Matlab基于深度置信网络(DBN)回归预测,matlab代码回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分…

原来工作18年的企业大佬都是这样自定义企业微信扫码登录的样式

前言 由于企业微信扫码登录都是固定样式和模板&#xff0c;每个公司在前期使用的时候可能会使用原样的模版&#xff0c;随着业务场景的复杂及细分场景优化&#xff0c;这个固定样式的模版满足不了企业的需求&#xff0c;所以需要对模版进行改造&#xff0c;使它更加贴合企业业务…

【elementplus】解决el-table开启show-overflow-tooltip后,tooltip的显示会被表格边框遮挡的问题

如图所示&#xff1a; 原因&#xff1a; 1. el-table没有设置高度&#xff1b;2.就是被遮住了 解决&#xff1a; 方法一&#xff1a;给el-table设置高度 方法二: .el-table {overflow: visible !important;}如果不想给el-table设置高度&#xff0c;就直接使用方法二解决即可

Pycharm使用Anoconda配置虚拟环境

目录 1.Anoconda的介绍 2.Anaconda的作用 3.Anaconda的安装 4.Anaconda的配置 4.1添加镜像源 4.2创建、使用并切换虚拟环境 5.pycharm的集成 1.Anoconda的介绍 Anaconda是一个可用于科学计算的 Python 发行版&#xff0c;可以便捷获取和管理包&#xff0c;同时对环境进行…

Java内存结构分析

一、Java内存结构划分 Java虚拟机的运行时数据区域主要包括程序计数器、Java虚拟机栈、本地方法栈、堆、方法区。 &#xff08;1&#xff09;程序计数器&#xff08;Program Counter Register&#xff09; 它是一块较小的内存空间&#xff0c;它可以看作是当前线程所执行的字…

SpringBoot项目整合WebSocket+netty实现前后端双向通信(同时支持前端webSocket和socket协议哦)

目录 前言 技术栈 功能展示 一、springboot项目添加netty依赖 二、netty服务端 三、netty客户端 四、测试 五、代码仓库地址 专属小彩蛋&#xff1a;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家…

OLS回归分析理论基础

前言 由于目前的实证研究中需要对变量间的因果关系进行定量分析&#xff0c;所以以伍德里奇和陈强两版本计量经济学教材为基础&#xff0c;有针对性的整理出OLS回归的相关知识&#xff0c;以解决实证分析中的实际问题。 1&#xff09;本文重点&#xff1a;本文重点研究OLS下面板…

vs code koroFileHeader插件相关配置

https://www.cnblogs.com/melodyjerry/p/14449990.html 一、安装插件 koroFileHeader 插件作用&#xff1a;在文件顶部添加头部注释 VS Code 中搜索并安装插件 koroFileHeader&#xff1b; 点击插件右下方的 设置 按钮 > 扩展设置 > 点击 在settings.json 中编辑&…

数据结构 线性表的定义和基本操作(以顺序表为例)

名人说&#xff1a;一花独放不是春&#xff0c;百花齐放花满园。——《增广贤文》 作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 〇、线性表是什么&#xff1f;1、定义2、特点3、基本操作 一、代码实现二、思路阐明…

记录使用ffmpeg把mp4转换成m3u8

背景:公司需要上一些视频资源,平均每一个都在600m以上,经过考虑以后采取视频分片以后上传到oss上进行加速播放的流程.这里记录一下使用ffmpeg进行转换视频格式的过程中的一些命令. 准备工作: 下载ffmpeg到本地,以及配置ffmpeg到环境变量中,这里就不多说了. 使用的时候先打开…

软考每年成绩几月公布 软考考试历年成绩查询时间

软考成绩一般在考试结束后两个月内公布&#xff0c;上半年软考考试成绩一般在7月查询&#xff0c;下半年软考考试成绩一般在12月查询。软考成绩在中国计算机技术职业资格网公布&#xff0c;从2022年起&#xff0c;软考的合格标准为满分的60%&#xff0c;即45分合格。 软考考试…

MybatisX插件自动生成sql失效问题的详细分析

mybatis框架提供了非常好用的逆向工程插件&#xff0c;但是根据数据库驱动版本的不同会出现一些问题。 在使用mybatisX插件的时候使用Generate mybatis sql无法实现自动生成sql 解决方案&#xff1a; 1.首先检查自己的数据库中表是否有主键&#xff0c;如果没有主键是不会生…

流及其相关操作

本文已收录于专栏 《Java》 目录 概念说明流 流的分类根据数据流向的不同&#xff0c;可以分为输入流和输出流。根据处理单位的不同&#xff0c;可以分为字节流和字符流。根据功能不同&#xff0c;可以分为节点流和处理流。 提供服务过滤操作&#xff08;Filter&#xff09;映射…

后端基础:IO cell的pre driver与post driver的区别

pre driver就是接core电压的部分&#xff0c;一般叫VDD/VSS&#xff0c;post driver就是接pad的高压部分。所以power IO起到一个level shifter的作用&#xff0c;将高压转换为低压。 pre driver和post driver地共用的情况可以节省一个PAD&#xff0c;esd也很好&#xff0c;但是…

华为IMC培训——通信基础与路由协议

目录 环境搭建 wireshark安装 VirtualBox安装 WinPcap安装 eNSP安装 数据在七层模型间的传输过程 路由 静态路由 动态路由 rip OSPF 单臂路由 ——————————————————————————————————————————— 虽然是白嫖的课&#xff…

使用cmake创建visual studio工程

对于从网上拉取的C++代码,手动配置VS环境比较麻烦,使用cmake可以自动配置,这里使用一个简单的cmake配置hello.cpp例子演示 前提环境:cmake vs2017 1.在某路径下创建一个文件夹名为test:(注意:路径中不能有中文) 其中CMakeList.txt文件中输入代码如下: 其中,cmake_…

supervisor管理

supervisor 一&#xff1a;supervisor使用详解 一&#xff1a;supervisor使用详解 简介 使用文档&#xff1a;http://supervisord.org/ supervisor是Python开发的c/s服务&#xff0c;是Linux系统下的进程管理工具。 可以监听、启动、停止、重启一个或多个进程 用supervisor…

【SLAM学习】获取IMU和雷达消息并发布

本文主要记录如何将rosbag的消息进行获取并进行发布以及后续处理。 测试数据集&#xff1a; 链接: https://pan.baidu.com/s/1DthWE45V5Zhq7UUrfTt_CQ 提取码: mxvn 查看数据集bag包里面都有那些话题&#xff1a; rosbag info indoor_lab_RS.bag 可以看到包含了两个话题…

web安全php基础_php语法格式与注释

php开头与结尾 php脚本以<php 开始 以 ?>结束 但是先前创建页面的时候我们发现phpinfo只有<php开头&#xff0c;并没有&#xff1f;>结尾 在这里我们可以手动给它加上?>结尾 php强制使用分号&#xff1b;结尾 PHP指令分隔符   与C、Perl及Java一样&…

mysql的集群和主从的区别

现在的项目使用mysql数据库&#xff0c;要自己设计数据存储架构。所以研究了一下mysql的集群(cluster)和主从&#xff08;master/slave&#xff09;这两个概念。两者非常容易混淆&#xff0c;所以需要分辨出这2者之间的区别。 一、Mysql cluster: share-nothing,分布式节点架构…