源码编译安装LAMP

一、httpd


[root@localhost ~]# systemctl stop firewalld
[root@www ~]# systemctl disable firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/sysconfig/selinux 
[root@localhost ~]# rpm -e httpd --nodeps   (检查是否安装httpd)
错误:未安装软件包 httpd 
[root@localhost ~]# yum -y install apr-util-devel pcre-devel  gcc*(开发环境)
安装所需的软件包
[root@localhost ~]# tar zxvf httpd-2.4.25.tar.gz   (解压)
[root@localhost ~]# cd httpd-2.4.25
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi  --enable-deflate

备注:
./configure:指定安装包功能,配置
--prefix:路径前缀 制定程序的安装目录
--enable-so:启用动态加载模块DSO的支持,使httpd具备进一步扩展功能的能力
--enable-rewrite:启用网页地址重写功能,用于网站优化
--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页
--enable-cgi:启用cgi脚本程序支持,扩展网站的应用访问能力;c通用g网关i接口
--enable-deflate:网页压缩


[root@localhost httpd-2.4.25]# make && make install
[root@localhost httpd-2.4.25]# ls /usr/local/httpd/
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules
备注:
bin:命令
logs:存放日志
conf:存放配置文件
htdocs:网站文档

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/  (命令优化)
[root@localhost ~]# httpd -v
Server version: Apache/2.4.25 (Unix)
Server built:   Jun 11 2024 14:58:13
[root@localhost ~]# apachectl start 
[root@localhost ~]# netstat -anpt | grep httpd
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf  (关闭消息提示)

ServerName www.example.com:80  (200行,注释符去掉即可)
[root@localhost systemd]# cd /lib/systemd/system
[root@localhost system]# vim httpd.service (httpd系统服务,保持后缀名必须是.service)
[Unit]
Description=zhangsan
After=network.target (在apache之后启动)
[Service]
Type=forking  (启动方式)
PIDFile=/usr/local/httpd/logs/httpd.pid (文件放置位置)
ExecStart= /usr/local/bin/apachectl $OPTIONS (启动。关闭apachecyl)
ExecReload= /bin/kill -HUP $MAINPID   (重载)
[Install]
WantedBy=multi-user.target  (多用户目标)

[root@localhost system]# systemctl daemon-reload
[root@localhost system]# systemctl enable httpd.service
[root@localhost system]# systemctl start httpd
[root@localhost system]# netstat -anpt | grep httpd
[root@localhost ~]# cd /usr/local/httpd/htdocs/  (默认站点位置)
[root@localhost htdocs]# ls
index.html

备注:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

该内容是在访问访问网站上中文乱码处理位置放在<html>之下即可


1.虚拟主机(基于主机名)

虚拟主机(单个主机运行多个站点)
站点1:httpd—ip+80
站点2:httpd—ip+80
1. 基于ip的虚拟主机
2. 基于端口的虚拟主机
3.基于主机名的虚拟主机

102为虚拟主机提供域名解析
[root@localhost ~]# vim /etc/hosts
192.168.10.101 www.accp.com
192.168.10.101 www.benet.com

[root@localhost ~]# mkdir -p /var/www/html/accpcom (创建站点目录)
[root@localhost ~]# mkdir -p /var/www/html/benetcom
[root@localhost ~]# echo "www.accp.com">/var/www/html/accpcom/index.html 
[root@localhost ~]# echo "www.benet.com">/var/www/html/benetcom/index.html
[root@localhost ~]# cd /usr/local/httpd/conf/
[root@localhost conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@localhost conf]# cd extra/
[root@localhost extra]# ls
httpd-autoindex.conf  httpd-info.conf       httpd-mpm.conf                 httpd-userdir.conf
httpd-dav.conf        httpd-languages.conf  httpd-multilang-errordoc.conf  httpd-vhosts.conf
httpd-default.conf    httpd-manual.conf     httpd-ssl.conf                 proxy-html.conf
[root@localhost extra]# vim httpd-vhosts.conf   (虚拟主机)
<Directory "/var/www/html">
Require all granted 
</Directory>

 <VirtualHost *:80>
DocumentRoot "/var/www/html/benetcom"  (网站文件位置)
    ServerName www.benet.com   (与客户端hosts名称一致)
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.benet.com.error_log"
    CustomLog "logs/www.benet.com.access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/var/www/html/accpcom"
    ServerName www.accp.com
    ErrorLog "logs/www.accp.com.error_log"
    CustomLog "logs/www.accp.com.access_log" common
</VirtualHost>
[root@localhost extra]# vim /usr/local/httpd/conf/httpd.conf  (主配置文件去掉注释符)
Include conf/extra/httpd-vhosts.conf   (490)
[root@localhost extra]# systemctl restart httpd

102测试
[root@localhost ~]# curl www.accp.com
www.accp.com
[root@localhost ~]# curl www.benet.com
www.benet.com
 

2.虚拟主机(基于IP)

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]# vim ifcfg-ens33:0

仅把IP进行更改即可
[root@localhost network-scripts]# systemctl restart network
[root@localhost ~]# cd /usr/local/httpd/conf/extra/
<VirtualHost 192.168.10.210:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/var/www/html/accpcom"
    ServerName www.accp.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.accp.com.error_log"
    CustomLog "logs/www.accp.com.access_log" common
</VirtualHost>

<VirtualHost 192.168.10.101:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/var/www/html/benetcom"
    ServerName www.benet.com
    ErrorLog "logs/www.benet.com.error_log"
    CustomLog "logs/www.benet.com.access_log" common
</VirtualHost>


102客户机访问即可
[root@localhost ~]# curl 192.168.10.101
www.benet.com
[root@localhost ~]# curl 192.168.10.210
www.accp.com
 

3.虚拟主机(基于端口)

Listen 80
Listen 8080

<VirtualHost 192.168.10.210:80>
..........
</VirtualHost>

<VirtualHost 192.168.10.101:8080>
[root@localhost extra]# netstat -anpt | grep httpd

客户机102检测
[root@localhost ~]# curl 192.168.10.210
www.accp.com
[root@localhost ~]# curl 192.168.10.101:8080
www.benet.com
 

二、Mysql

<安装所需的mysql软件包>
[root@localhost ~]#yum -y install ncurses-devel autoconf

备注:
初始化mysql需要autoconf,它是自动化配置脚本生成工具,安装自动化脚本生成工具

[root@localhost ~]# tar zxvf mysql-5.6.36.tar.gz
[root@localhost mysql-5.6.36]# yum -y install cmake  (利用yum安装cmake,进行编译没有config)
[root@localhost mysql-5.6.36]# useradd -M -s /sbin/nologin mysql  (特有的程序运行mysql)

备注:
sbin/nologin 不允许使用命令语句登陆系统

[root@localhost mysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

[root@localhost mysql-5.6.36]# make && make install
[root@localhost ~]# cd /usr/local/
[root@localhost local]# chown -R mysql:mysql mysql/ (更改属主属组)
[root@localhost ~]# rm -rf /etc/my.cnf  (删除该文件,非源码包生成)

[root@localhost ~]# cd mysql-5.6.36
[root@localhost mysql-5.6.36]# cd support-files/
[root@localhost support-files]# cp my-default.cnf /etc/my.cnf (my-default.cnf源码包的配置文件)

初始化:
[root@localhost ~]# cd /usr/local/mysql/scripts/
[root@localhost scripts]# ls
mysql_install_db  (用于初始化)
[root@localhost scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

备注:
--user=mysql  指定用户
--basedir=/usr/local/mysql 指定目录路径
--datadir=/usr/local/mysql/data  数据文件位置

[root@localhost ~]# vim /etc/profile (全局变量文件)
export PATH=$PATH:/usr/local/mysql/bin
[root@localhost ~]# source /etc/profile (重载该文件)但是还无法正常使用
[root@localhost mysql-5.6.36]# cd support-files/
mysql.server  (mysql服务配置文件)
[root@localhost support-files]# cp mysql.server /etc/init.d/mysqld
[root@localhost support-files]# chmod +x /etc/init.d/mysqld   (名称一致)
 [root@localhost support-files]# chkconfig --add mysqld  (将mysqld添加为系统服务)
[root@localhost support-files]# chkconfig mysqld on  (开机自启)
[root@localhost support-files]# systemctl restart mysqld
[root@localhost support-files]# netstat -anpt | grep mysqld (mysql端口号3306)
[root@localhost ~]# mysql -uroot   (登录mysql)
备注:
-u 指定用户
-p 密码
mysql> set password=password("pwd123");   
" "密码是一个字符串用引号
password("pwd123") :利用password函数对密码进行加密
; 结尾+;表示语句的结束

[root@localhost ~]# mysql -uroot -ppwd123  (验证,且-u与root之间没有空格;-p和pwd123之间my空格)

三、PHP

<安装所需要的php压缩包>

[root@localhost ~]# tar zxvf php-5.5.38.tar.gz 
[root@localhost ~]#yum -y install zlib-devel libxml2 libxml2-devel lxz-devel

备注:
 zlib-devel 提供压缩
 libxml2 文件
libxml2-devel  对应函数库
 lxz-devel 
若lxz-devel无法安装,可以使用阿里云安装 

在另一个终端安装相应包:
101(1)
[root@localhost ~]# yum -y install libmcrypt libmcrypt-devel mcrypt mhash

[root@localhost php-5.5.38]# ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-config-file-path=/usr/local/php5 --enable-mbstring
备注:
--prefix=/usr/local/php5
--with-mcrypt   (加密)
--with-apx2=/usr/local/httpd/bin/apxs  (与apache中so联动)
--with-mysql=mysqlnd  (函数集)
--with-mysqli=mysqlnd  (扩展函数集)
--with-config-file-path=/usr/local/php5  (配置文件)
--enable-mbstring  (多字符串)
[root@localhost php-5.5.38]# make && make install
[root@localhost php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini  (复制php配置文件)
[root@localhost php-5.5.38]# vim /usr/local/php5/php.ini 
去掉注释符即可
default_charset = "UTF-8"  (字符集)
short_open_tag = On  (开启短语202行)
extension=php_mysqli.dll  (开启MySQL)

加密
<安装zend-loader-php>
[root@localhost ~]# tar zxvf zend-loader-php5.5-linux-x86_64_update1.tar.gz 
[root@localhost zend-loader-php5.5-linux-x86_64]# ls
opcache.so  README.txt  ZendGuardLoader.so 

备注:
ZendGuardLoader.so模块文件

[root@localhost zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/
[root@localhost ~]# vim /usr/local/php5/php.ini 
zend_extenstion=/usr/local/php5/lib/php/ZendGuardLoader.so     (于二三行添加即可)
zend_loader.enable=1
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf
LoadModule php5_module        modules/libphp5.so  (确认php是否安装成功)
  AddType application/x-httpd-php .php  (添加php程序397)
index.php  (php默认索引文件259)

[root@localhost ~]# httpd -t  (检查语法)
Syntax OK
[root@localhost ~]# systemctl restart httpd  (重启)

四、测试LAMP连接性

1.PHP与网页正确连接


[root@localhost ~]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# vim test1.php
<?php
phpinfo( );
?>

2.PHP与MYSQL连接 

[root@localhost htdocs]# vim test2.php
<?php
$link=mysqli_connect('localhost','root','pwd123');
if($link) echo "连接成功";
mysqli_close($link);
?>

 五、部署PHPMyAdmin

<复制安装包>

[root@localhost ~]# tar zxvf phpMyAdmin-4.7.2-all-languages.tar.gz
[root@localhost ~]# mv phpMyAdmin-4.7.2-all-languages /usr/local/httpd/htdocs/phpMyAdmin
[root@localhost ~]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls 
index.html  phpMyAdmin  test1.php  test2.php (检查是否安装成功)
[root@localhost phpMyAdmin]# cp config.sample.inc.php config.inc.php  (php连接MySQL)
网页测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值