LAMP
Linux + Apache + Mysql + Php
重要:静态设置ip地址*
一、基本概念
1、WEB概念
WEB是一种交互式图形界面的Internet服务,具有强大的信息连接功能,通过超文本链接( HyperText ) 的 方式,将信息通过 Internet 传递到全球每个角落!
一般情况下,终端用户通过浏览器输入比较完整的URL即可以完成访问。
2、URL概念
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源 的地址。
互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
基本URL包含:模式(或称协议)、服务器名称(或IP地址)、路径和文件名
如“协议://授权/路径?查询
”
完整的、带有授权部分的普通统一资源标志符语法看上去如下:
协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志
3、HTTP协议
HTTP(HyperText Transfer Protocol),是目前WWW传递数据的主流协议!网站上的网页,则需要符合 HyperText Markup Language(HTML)的语法。
HTTP服务原理
当我们在网址栏输入网址之后:
1)Client经过DNS解析得到WWW主机的IP,会发出一个数据包,以http协议联接WWW主机,通知WWW主机要以http的方法来取得数据。
2)WWW主机收到数据包后,根据Client的要求,提供相关的讯息来响应,大部分情况下用 http的协议传送用HTML 语法的网页数据到Client端的浏览器;
3)最后Client端的浏览器将 HTML的语法解析后,显示网页内容。
4、httpd服务的目录结构
服务目录:/usr/local/httpd/
主配置文件:/usr/local/httpd/conf/httpd.conf
网页目录:/usr/local/httpd/htdocs/
服务脚本:/usr/local/httpd/bin/apachectl
执行程序:/usr/local/httpd/bin/httpd
访问日志: /usr/local/httpd/log/access_log
错误日志: /usr/local/httpd/log/error_log
5、httpd.conf配置文件
常用的全局配置参数
ServerRoot:服务目录
ServerAdmin:管理员邮箱
User:运行服务的用户身份
Group:运行服务的组身份
ServerName:网站服务器的域名
DocumentRoot:网页文档的根目录
Listen:监听的IP地址、端口号
PidFile:保存httpd进程PID号的文件
DirectoryIndex:默认的索引页文件
ErrorLog:错误日志文件的位置
CustomLog:访问日志文件的位置
LogLevel:记录日志的级别,默认为warn
Timeout:网络连接超时,默认为300秒
KeepAlive:是否保持连接,可选On或Off
MaxKeepAliveRequests:每次连接最多请求文件数
KeepAliveTimeout:保持连接状态时的超时时间
Include:需要包含进来的其他配置文件
区域配置项
<Directory "/usr/local/httpd/htdocs">
Options FollowSymLinks #控制选项,允许使用符号链接
AllowOverride None #不允许隐含控制文件中的覆盖配置
Order deny,allow #访问控制策略的应用顺序
Deny from all #禁止任何人访问此区域
</Directory>
6、httpd服务访问控制
作用:
控制对网站资源的访问
为特定的网站目录添加访问授权
常用访问控制方式:
客户机地址限制
用户授权限制
1)基于客户端地址的访问控制
Order配置项,定义控制顺序
先允许后拒绝,默认拒绝所有:Order allow,deny
先拒绝后允许,默认允许所有:Order deny,allow
Allow、Deny配置项,设置允许或拒绝的地址
Deny from address1 address2 …
Allow from address1 address2 …
例如:
<Directory "/usr/local/httpd/htdocs">
……
Order deny,allow
deny from 192.168.0.0/24 192.168.1.0/24
</Directory>
2)用户授权限制
cd /usr/local/httpd/bin
htpasswd -c /usr/local/httpd/conf/.htpass webadmin
(-C,只在添加首个用户时使用)
cat /usr/local/httpd/conf/.htpass
3)对网站目录添加授权
vi /usr/local/httpd/conf/httpd.conf
……
<Directory "/usr/local/httpd/htdocs">
……
AuthName "WWW.TOPSECEDU.COM"
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
require valid-user
</Directory>
4)重启网站服务
/etc/init.d/httpd restart 或者
/usr/local/httpd/bin/apachectl restart 或者
service httpd restart
二、Apache服务器
192.168.168.187
1、编译安装Apache软件包
编译安装四步骤:
1)第一步解开源代码封装包
2)第二步配置选择安装的功能 和安装目录等信息
3)第三步编译将配置信息生成可执行的二进制文件
4)第四步安装
卸载默认的相关软件包
rpm -e httpd --nodeps
rpm -e httpd-manual --nodeps
rpm -e webalizer --nodeps
rpm -e subversion --nodeps
rpm -e mod_python --nodeps
rpm -e mod_ssl --nodeps
rpm -e mod_perl --nodeps
rpm -e system-config-httpd --nodeps
rpm -e php --nodeps
rpm -e php-cli --nodeps
rpm -e php-ldap --nodeps
rpm -e php-common --nodeps
rpm -e php-mysql --nodeps
rpm -e mysql --nodeps
rpm -e dovecot --nodeps
tar zxf httpd-2.2.17.tar.gz -C /usr/src/ 解压http压缩包到指定目录下
cd /usr/src/httpd-2.2.17/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
make 编译
make install 安装
(--prefix:指定将httpd服务程序安装到哪个目录,如/usr/local/httpd。
--enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。
--enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页。
--enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力。)
查看安装结果
2、优化执行路径
ln -s /usr/local/httpd/bin/* /usr/local/bin/
ls -l /usr/local/bin/httpd /usr/local/bin/apachectl(查看软链接)
3、添加httpd系统服务
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd(阿帕奇网站服务的控制脚本)
vi /etc/init.d/httpd
#!/bin/bash
# chkconfig: 35 85 15(使其能够支持chkconfig来进行管理)
# description: Startup script for the Apache HTTP Server
……
chkconfig --add httpd 添加Apache服务到系统,使其开机后自动运行(调整启动级别)
chkconfig --list httpd(查看启动状态)
4、修改Apache配置文件,添加Apache服务器名称为:www.topsec.com
vim /usr/local/httpd/conf/httpd.conf
……
ServerName www.topsec.com
5、启动网站服务
service httpd start
6、启动Apache服务
netstat -anpt | grep httpd
7、在虚拟机上测试是否搭建好Apache服务器
在物理机上测试
番外-httpd服务访问控制
控制对网站资源访问
为特定的网站目录添加访问授权
常用方式
客户机地址限制
用户授权限制
1、基于客户端地址的访问控制
htdocs : 网页/主页
1)Order 配置项 ,定义控制顺序
先允许,后拒绝,默认为拒绝所有 Order allow,deny
先拒绝,后允许,默认为允许所有 Order deny,allow
2)Allow、Deny配置项,允许、拒绝地址
Deny from ip1 ip2
Allow fro ip1 ip2
对主页进行操作
vim /usr/local/httpd/conf/httpd.conf
service httpd restart 重启服务
对后台进行操作
cd /usr/local/httpd/htdocs
mkdir webadmin 创建后台管理目录,用于存放后台页面
创建一个index.html文件
<html>
<body>
<h1>Web Manager</h1>
</body>
</html>
vim /usr/local/httpd/conf/httpd.conf
2、 用户授权限制
(1)创建用户认证数据库
cd /usr/local/httpd/bin
htpasswd -c /usr/local/httpd/conf/.webpass webadmin
-c 添加首个用户,多用户时不使用,否则会覆盖
(2)添加用户授权配置
vim /usr/local/httpd/conf/httpd.conf
二、编译安装MySQL数据库
1.卸载Linux系统自带A的mysql软件包
rpm -e mysql-server
rpm -e mysql
2.安装支持包
yum -y install ncurses-devel
3.安装cmake工具
tar zxf
ls /root/lamp/mysql/cmake*
-C /usr/src
cd /usr/src
cdls -d */ | grep cmake
./configure
gmake && gmake install
4.创建mysql用户
useradd -M -s /sbin/nologin mysql
5.解压mysql源码包
tar zxf
ls /root/lamp/mysql/mysql-5*
-C /usr/src
cd /usr/src
cdls -d */ | grep mysql
6.配置mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
选项含义如下
-DCMAKE_INSTALL_PREFIX= 指定mysql的安装路径
-DSYSCONFDIR= 指定mysql配置文件的所在目录
-DDEFAULT_CHARSET 指定默认的字符集
-DDEFAULT_COLLATION= 指定字符集的默认排序
-DWITH_EXTRA_CHARSETS= 支持扩展字符集
7.编译及安装mysql
make && make install
8.修改mysql安装目录的所有者权限
chown -R mysql:mysql /usr/local/mysql
9.删除默认的mysql配置文件,拷贝生成新的配置文件
rm -rf /etc/my.cnf
cp support-files/my-medium.cnf /etc/my.cnf
10.初始化mysql数据库
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
11.修改环境变量PATH的值,将mysql命令追加到默认搜索路径中
echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
12.重新加载环境变量
. /etc/profile
13.优化mysql执行路径
ln -s /usr/local/mysql/bin/* /usr/local/bin
ln -s /usr/local/mysql/lib/mysql/* /usr/lib/
ln -s /usr/local/mysql/include/mysql/* /usr/include/
14.生成mysql启动脚本,并赋予执行权
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
15.将mysql服务添加到开机自启动中
chkconfig --add mysqld
16.启动mysql服务,并查看运行端口
service mysqld start
netstat -anpt | grep mysqld
三、编译安装PHP
1.卸载默认的php相关软件包
rpm -e php --nodeps
rpm -e php-cli --nodeps
rpm -e php-ldap --nodeps
rpm -e php-common --nodeps
rpm -e php-mysql --nodeps
2.安装支持包
yum -y install zlib-devel
yum -y install libxml2-devel
3.安装扩展工具库(libmcrypt、mhash、mcrypt)
tar zxf
ls /root/lamp/php/libmcrypt*
-C /usr/src
cd /usr/src
cdls -d */ | grep libmcrypt
./configure
make && make install
ln -s /usr/local/lib/libmcrypt.* /usr/lib/ #优化链接库
tar zxfls /root/lamp/php/mhash*
-C /usr/src
cd /usr/src
cdls -d */ | grep mhash
./configure
make && make install
ln -s /usr/local/lib/libmhash* /usr/lib/
tar zxfls /root/lamp/php/mcrypt*
-C /usr/src
cd /usr/src
cdls -d */ | grep mcrypt
export LD_LIBRARY_PATH=/usr/local/lib #定义变量LD_LIBRARY_PATH,并提升为全局变量
./configure
make && make install
4.安装php
tar zxf
ls /root/lamp/php/php-5*
-C /usr/src
cd /usr/src
cdls -d */ | grep php
5.配置
./configure (./configure 后面空格加下列,写成一行)
–prefix=/usr/local/php5
–with-mcrypt
–with-apxs2=/usr/local/httpd/bin/apxs
–with-mysql=/usr/local/mysql
–with-config-file-path=/usr/local/php5
–enable-mbstring
选项含义如下:
–prefix:指定将php程序安装到哪个目录,如/usr/local/php5。
–with-mcrypt:加载数据加密等扩展工具支持。
–with-apxs2:设置Apache HTTP Server提供的apxs模块支持程序的文件位置。
–with-mysql:设置MySQL数据库服务程序的安装位置。
–with-config-file-path:设置PHP的配置文件php.ini将要存放的位置。
–enable-mbstring:启用多字节字符串功能,以便支持中文等代码。
6.编译及安装
make && make install
7.拷贝生成php配置文件php.ini
cp php.ini-development /usr/local/php5/php.ini
8.优化php的执行命令
ln -s /usr/local/php5/bin/* /usr/local/bin/
ln -s /usr/local/php5/sbin/* /usr/local/sbin/
9.修改php.ini文件
1)启用默认字符集“default_charset = "iso-8859-1”,并修改默认字符集为:utf-8,如下所示:
default_charset = utf-8
2)开启short_open_tag功能,修改其值为:On
short_open_tag = On
10.解压ZendGuardLoader文件
tar zxf
ls /root/lamp/php/ZendGuardLoader*
-C /usr/src
cd /usr/src
cdls -d */ | grep ZendGuardLoader
cdls -d */ | grep php
cpls Zend*
/usr/local/php5/lib/php
11.在php.ini文件中增加Zend功能(PHP加速)
在文件尾部,或第19行处,插入:
vim /usr/local/php5/php.ini
……
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable = 1
12.修改Apache配置文件,使其支持php动态网站功能
1)vim /usr/local/httpd/conf/httpd.conf,在httpd.conf文件的54行插入:
AddType application/x-httpd-php .php
2)vim /usr/local/httpd/conf/httpd.conf,修改DirectoryIndex行,并添加index.php
DirectoryIndex index.html index.php
13.重新启动Apache服务
service httpd restart
14.建立PHP功能测试网页test1.php
vim /usr/local/httpd/htdocs/test1.php
内容如下:
<?php
phpinfo();
?>
15.建立PHP连接MySQL的测试网页test2.php
1)修改mysql管理员用户root的密码为:123456
mysqladmin -u root password “123456” #修改mysql的root帐号口令
2)建立test2.php页面文件
vim /usr/local/httpd/htdocs/test2.php
内容如下:
<?php
$link=mysql_connect("localhost","root","123456");
if($link) echo "<h1>恭喜您,数据库连接成功啦!</h1>";
mysql_close();
?>
通过两个php文件 验证php是否搭建好:
四、部署PhpMySQL站点包
1.解压phpMyAdmin网页文件
cd /root/lamp/web
tar zxfls phpMyAdmin-4*
mvls -d */ | grep phpMyAdmin
/usr/local/httpd/htdocs/phpMyAdmin
2.建立配置文件config.inc.php
cp /usr/local/httpd/htdocs/phpMyAdmin/config.sample.inc.php /usr/local/httpd/htdocs/phpMyAdmin/config.inc.php
3.访问phpMyAdmin站点
1)打开火狐浏览器
在地址栏中输入:http://站点服务器IP/phpMyAdmin/
2)在登录页面中输入
mysql管理员用户:root
密码:123456
3)在图形界面下,实现数据库的基本操作(增、删、查、改)
五、部署Discuz论坛BBS站点包
1.创建Discuz论坛BBS站点数据库bbsdb
1)以mysql管理员root身份登录mysql,并创建数据库bbsdb
mysql -u root -p123456
mysql> CREATE DATABASE bbsdb;
2.创建runbbs数据库用户有,并授权其对bbsdb库拥有所有权限
mysql> GRANT all ON bbsdb.* TO ‘runbbs’@‘localhost’ IDENTIFIED BY ‘123456’;
3.解压Discuz站点包
unzip /root/lamp/web/Discuz_7.2_FULL_SC_UTF8.zip -d DiscuzPkg
mv DiscuzPkg/upload/ /usr/local/httpd/htdocs/bbs
4.修改相关站点目录的所有者为daemon
cd /usr/local/httpd/htdocs/bbs
chown -R daemon templates/ attachments/ forumdata/
chown -R daemon uc_client/data/cache/ config.inc.php
请注意:
1)论坛站点部署成功后,请打开火狐浏览器
在地址栏中输入:http://站点服务器IP/bbs/install/index.php进行论坛安装
2)安装界面中,数据库用户名为:runbbs;数据库名为:bbsdb;数据库类型为:mysql
3)安装界面中,管理员用户名、密码、邮箱可任意指定。
例如:管理员用户名:admin,密码:123456,邮箱:admin@topsec.com
4)测试bbs站点功能正常,请将/usr/local/httpd/htdocs/bbs下的install移除或修改install目录权限为:600,以防止他人再次访问install目录,进行二次安装"