编译安装lamp
整体规划图
共三台主机;httpd,php-fpm,mariadb分别位于不同主机。
二进制安装mariadb
安装过程大致思路为:准备二进制包—解压到指定文件后创建mysql连接方便管理—创建数据目录和著配置文件目录—安装mysql指定数据目录—开机自启配置
tar -zxvf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local/ ln -s /usr/local/mariadb-5.5.43-linux-x86_64/ /usr/local/mysql useradd -s /sbin/nologin mysql chown -R root.mysql /usr/local/mysql/* mkdir -p /mydata/data chown -R mysql.mysql /mydata/data mkdir /etc/mysql cp -a /usr/local/mysql/support-files/my-large.cnf /etc/mysql/my.cnf vim /etc/mysql/my.cnf [mysqld]###加三行,一定要配置在[mysqld]配置段否则mysql启动不起来。 datadir =/mydata/data innodb_file_per_table = ON skip_name_resolve = ON vim /etc/profile.d/mysql.sh export PATH=/usr/local/mysql/bin/:$PATH source /etc/profile.d/mysql.sh cd /usr/local/mysql;scripts/mysql_install_db --user=mysql --datadir=/mydata/data cp -a /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld chkconfig --add mysqld
/usr/local/mysql/bin/mysql_secure_installation
编译安装httpd-2.4
第一步:编译安装httpd
mkdir /app/httpd-2.4.39/srclib/apr-util
mkdir /app/httpd-2.4.39/srclib/apr
cp -r /app/apr-1.7.0/* /app/httpd-2.4.39/srclib/apr
cp -r /app/apr-util-1.6.1/* /app/httpd-2.4.39/srclib/apr-util/
cd /app/httpd-2.4.39/
./configure \
--prefix=/app/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
第二步:配置httpd
Httpd编译过程:
自带的服务控制脚本:
导出环境变量
自定义启动脚本
/usr/lib/systemd/system/httpd24.service[Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target Documentation=man:httpd(8) Documentation=man:apachectl(8) [Service] Type=forking #Type=notify #EnvironmentFile=/etc/sysconfig/httpd ExecStart=/app/httpd24/bin/httpd $OPTIONS -k start #ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND ExecReload=/app/httpd24/bin/httpd $OPTIONS -k graceful ExecStop=/bin/kill -WINCH ${MAINPID} # We want systemd to give httpd some time to finish gracefully, but still want # it to kill httpd after TimeoutStopSec if something went wrong during the # graceful stop. Normally, Systemd sends SIGTERM signal right after the # ExecStop, which would kill httpd. We are sending useless SIGCONT here to give # httpd time to finish. KillSignal=SIGCONT PrivateTmp=true [Install] WantedBy=multi-user.target
重载配置
systemctl daemon-reload
启动服务
systemctl start httpd24
编译安装php
第一步:安装php
yum -y install epel-release libxml2-devel bzip2-devel libmcrypt-devel gcc pcre-devel openssl-devel expat-devel tar -xvf php-7.3.5.tar.bz2 ./configure --prefix=/app/php \ --enable-mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-openssl \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --enable-mbstring \ --enable-xml \ --enable-sockets \ --enable-fpm \ --enable-maintainer-zts \ --disable-fileinfonstall make && make install
第二步配置php
cp php.ini-production /etc/php.ini ##从php.ini-production生成php配置文件 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm###生成php启动文件 chmod +x /etc/init.d/php-fpm chkconfig --add php-fpm ###配置开机自启 chkconfig php-fpm on
vim /app/php/etc/php-fpm.d
listen = 9000 ###监听所有ip的9000段偶
vim /var/www/html/index.php ##提供简单的测试页。
<?php
echo date("Y/m/d H:i:s"); ###实践测试代码
$mysqli=new mysqli("192.168.206.30", "root", ""); ###下面时数据库测试代码
if(mysqli_connect_errno()){
echo "Failure";
$mysqli=null;
exit;
}
echo "OK";
$mysqli->close();
?>
第三步配置httpd支持php-fpm
vim /app/httpd24/conf/httpd.conf 取消下面两行的注释,开启proxy LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so 修改下面行 <IfModule dir_module> DirectoryIndex index.php index.html </IfModule> 加下面四行 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps ProxyRequests Off ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.206.20:9000/var/www/html/$1 ##将访问*.php的请求装发到20服务器的/var/www/html/*.php
第四步,启动服务
service php-fpm start
systemctl restart httpd24
测试LAMP
posted on 2020-08-23 16:33 HowOldAreYou 阅读(142) 评论(0) 编辑 收藏 举报