1.LAMP所需要的软件:
----httpd(提供Apache主程序)
----mysql(MySQL客户端程序)
----mysql-server(MySQL服务器程序)
----php(PHP主程序含给Apache使用的模块)
----php-devel(PHP的开发工具,与PHP外挂的加速软件有关)
----php-mysql(提供给PHP程序读取MySQL数据库的模块)
2.Apache的设定:
----针对服务器环境的设置项目
####/etc/httpd/conf/httpd.conf ##############################
ServerTokens OS #告诉客户端服务器的版本和操作系统,可以避免系统的信息被远程的用户查看到
ServerRoot "/etc/httpd" #服务器设置的最顶层目录,有点类似chroot的感觉
PidFile run/httpd.pid #放置PID的文件,可方便Apache软件管理。相对路径
Timeout 60 #不论接收或发送,当持续连接等待超过60秒则断开这次连接
KeepAlive On #是否允许持续性的连接,也就是一个TCP连接可以具有多个文件资料传送的要求
MaxKeepAliveRequests 500 #与前一个设置有关,当KeepAlive为On则这个数值可决定该次连接最大传输数量
KeepAliveTimeout 15 #在允许KeepAlive的条件下,则盖茨连接在最后一次传输后等待延迟的秒数
#底下兩個 perfork, worker 與記憶體管理有關!
StartServers 8 #啟動 httpd 時,喚醒幾個 PID 來處理服務的意思
MinSpareServers 5 #最小的預備使用的 PID 數量
MaxSpareServers 20 #最大的預備使用的 PID 數量
ServerLimit 256 #服务器的限制
MaxClients 256 #最多可以容許多少個用戶端同時連線到 httpd 的意思!
MaxRequestsPerChild 4000
StartServers 4MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
##以上2个内存管理模块是与服务器连接资源有关的设置项目。worker模块占用的内存较小,prefork虽然占用较大的内存,不过速度与##worker差异不大,且在内存使用设计上更优秀,可以进行自我排错,是默认的模块。
##要选择使用哪个模块,可修改/etc/sysconfig/httpd
Listen 80 #监听接口
#载入模块,Apache要使用PHP和mysql需要载入libphp5.so和mysql.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#......(以下载入的module省略).......#
Include conf.d/*.conf #将/etc/httpd/conf.d/目录下的conf文件的配置添加到主配置文件中
User apache
Group apache #在前面prefork,worker等模块启动的process的属主和属组,未来提供的网页文件能不能被浏览到与这个身份有关
ServerAdmin luyx@luyx30.no-ip.org #系统管理员的E-mail
ServerName www.luyx30.no-ip.org #服务器的主机名,若没指定则与hostname的输出为依据,一定要对应得到IP(DNS或hosts)
UseCanonicalName Off #是否使用标准主机名?如果主机有多个主机名,若这个设置为On,Apache只接受上面指定的主机名
DirectoryIndex index.html index.php #首页文件名的设置
#AddDefaultCharset UTF-8 #默认编码
AddHandler cgi-script .cgi .pl #设置目录具有执行cgi和pl等CGI的能力
##网页及目录设置
DocumentRoot "/var/www/html" #apache放置首页的主目录
Options FollowSymLinks
AllowOverride None
##以上设置是针对WWW服务器的默认环境
Options Indexes FollowSymLinks
####Options的主要参数有:
#Indexes:如果在此目录下找不到首页文件,就显示整个目录下的文件名,至于首页文件则与DirectoryIndex设置有关
#FollowSymLinks:可让连接文件有效的离开首页主目录(相当于被chroot)
#+ExecCGI:让此目录具有执行CGI程序的权限
#Includes:让一些Server-Side Include程序可以执行
#MultiViews:在同一主机上,可以依据客户端的语言而给予不同的语言显示
AllowOverride None
####AllowOverride的主要参数:(主要设置是否允许额外的配置文件.htaccess的某些参数覆盖
#All:全部的权限均可被覆盖
#AuthConfig:仅有网页认证(账号和密码)可覆盖
#Indexes:仅允许Indexes方面的覆盖
#Limits:允许用户利用Allow,Deny与Order管理可浏览的权限
#None:不可覆盖,也就是让.htaccess文件失效
Order allow,deny
####决定此目录是否可被Apache的PID所浏览的权限设置
#deny,allow:以deny优先处理,但没有写入规则的则默认allow
#allow,deny以allow优先处理,但没有写入规则的则默认deny
Allow from all
Alias /icons/ "/var/www/icons/" #制作目录别名。输入ip/icons/即可访问/var/www/icons/目录的内容,相当于快捷方式
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
Deny from 192.168.1.111 #拒绝来自192.168.1.111的访问
Deny from .gov #拒绝来着.gov主机的访问,如果想让某个网络或者IP无法浏览,最好利用iptables,但若仅是几个目录不想
#让别人查阅,那这种方式就值得参考
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" #与上面的icons类似,是以ScriptAlias(可执行脚本)为设置值,可指定目录具有
# 执行ExecCGI能力
Option None
AllowOverride None
Order allow,deny
Allow from all
#利用Limit来限制客户端可进行的操作
AllowOverride None
Options FllowSymLinks
#/var/www/html/lan目录仅能进行GET,POST,OPTIONS等功能其他都不允许
Order allow,deny
Allow from all
Order deny,allow
Deny from all
#这个设置可以允许用户拥有个人主页,此时可通过http://你的主机名/~username/来访问
UserDir www #不过这要保证用户主目录的权限为711,且SELinux中的httpd_enable_homedirs=1
#可以在/var/www/html目录下用alias或ln -s /home/username/www username这样可以不用~访问个人主目录
#ErrorDocument 404 /missing.html #指定系统出错时,返回给浏览器的信息页面
#ErrorDocument 405 /missing2.html
#利用Apache提供的特别功能来查看主机目前的状态
LoadModule status_module modules/mod_status.so
ExtendStatus On
SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
Allow from 127.0.0.1
#利用.htaccess来设置账户密码来保护受保护的目录
AccessFileName .htaccess
Order allow,deny
Deny from all
Satisfy all
#后续需要在该目录下建立.htaccess文件
AllowOverride AuthConfig
Order allow,deny
Allow from all
####/etc/httpd/conf/httpd.conf ############################################
----.htaccess
#### .htaccess ########################################################
AuthName "Protect test by .htaccess" #提示字符
Authtype Basic #认证类型
AuthUserFile /var/www/apache.passwd #保护目录使用的账户密码配置文件,不可放置在Apache可以浏览的目录
require valid-user #在账户密码内的用户都可登录
#### .htaccess ########################################################
----htpasswd
Apache默认读取的账户/密码设置数据是由htpasswd所建立的,语法如下:
htpasswd [-cmdD] 密码文件文件名 用户账号
-c: 建立后面的密码文件,如果该文件已经存在,则原来的数据会被删除,如果只是添加用户不要加此参数
-m: 不用默认的CRYPT加密,改用MD5方式加密密码
-d: 使用更负责的SHA方式加密
-D: 删除后面接的用户账号
3.虚拟主机的设定
----虚拟主机:就是让你的一台服务器上,有好几个"主网页"存在即硬件上只有一台主机,从网址上看似乎有多台
----前提:必须要拥有多个主机名才行。1,向ISP申请合法DNS;2,自己架设合法授权的DNS
----范例:
[root@www ~]# vim /etc/httpd/conf.d/virtual.conf
# 底下這一行在規定『本機任何介面的 port 80 所指定的虛擬主機』的意思。
NameVirtualHost *:80
# 先針對兩個多出來的可瀏覽目錄進行權限方面的規範啊!
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Options FollowSymLinks Indexes
AllowOverride None
Order allow,deny
Allow from all
# 針對三部主機的 DocumentRoot 進行定!
ServerName linux.centos.vbird
DocumentRoot /var/www/html
ServerName www.centos.vbird
DocumentRoot /var/www/www
CustomLog /var/log/httpd/www.access_log combined # 不同的主頁可以指定不同的登錄檔資訊,這樣比較好 debug 與分析啦!
ServerName ftp.centos.vbird
DocumentRoot /var/ftp
4.PHP模块
----在Apache的设置文件中要调整PHP模块的配置文件如下:
[root@www conf.d]# vim /etc/httpd/conf.d/php.conf
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com