欢迎各位兄弟 发布技术文章
这里的技术是共享的
设置环境变量常见的地方为区分开发环境/生产环境,或者定义一些数据库的帐号密码
设置当前环境变量为DEV
SetEnv RUNTIME_ENVIROMENT DEV
数据库帐号密码
SetEnv MYSQL_USERNAME root SetEnv MYSQL_PASSWORD root
<VirtualHost *:80>
ServerAdmin admin@admin.com
DocumentRoot "/var/www/"
ServerName localhost
SetEnv RUNTIME_ENVIROMENT DEV
SetEnv MYSQL_USERNAME root
SetEnv MYSQL_PASSWORD root
ErrorLog "logs/error.log"
CustomLog "logs/access.log" common
</VirtualHost>
设置当前环境变量为DEV
fastcgi_param RUNTIME_ENVIROMENT 'DEV'
数据库帐号密码
fastcgi_param MYSQL_USERNAME 'root' fastcgi_param MYSQL_PASSWORD 'root'
在fastcgi_params文件中配置
fastcgi_param RUNTIME_ENVIROMENT 'DEV'; fastcgi_param MYSQL_USERNAME 'root'; fastcgi_param MYSQL_PASSWORD 'root';
在nginx.conf中配置
server { listen 80; root /var/www; index index.php; server_name localhost; location / { index index.php; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } }
临时设置只需要执行
export KEY=VALUE
在~/.bashrc
(不同系统各有不同)中写
创建文件/etc/profile.d/test.sh
,写入
KEY=VALUE
在/etc/environment
中写入
KEY=VALUE
注意,这个文件的生效时间是用户登录时,所以对于root来说,需要重启机器
有的时候PHP脚本是用Supervisor来控制的,所以记得设置supervisor配置中的environment项
在PHP中有两个调用方式:
$env = getenv('RUNTIME_ENVIROMENT');
还有超全局变量方式:
$env = $_SERVER['RUNTIME_ENVIROMENT']; 来自 http://www.php100.com/html/it/biancheng/2015/0304/8698.html
.htaccess使用实例 收集和整理常用的.htaccess应用,这里都是具体的应用实例,给出很多典型的语法,对于常用的rewrite等语法,请参考对应的词条,在具体的例子中我们会用到rewrite,但是这里不会专门讲解相关的语法。
目录 |
<Files 403.shtml> order allow,deny allow from all </Files> deny from 1.1.1.1 ;写要封的IP
order deny,allow deny from all allow from 61.228.209.85
RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$ RewriteCond %{REQUEST_URI} !^/subfolder/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /subfolder/$1 RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$ RewriteRule ^(/)?$ subfolder/index.php [L]
将 yourmaindomain.com修改为你的域名,将subfolder修改为你要指向的public_html下的子目录.最后一行中的index.php修改为你的网站的主页名称.
<Files .htaccess> order allow,deny deny from all </Files>
其他文件也可以类似这样处理
全部统一到带 www,例如将83blog.com 统一到 www.83blog.com
RewriteEngine on RewriteCond %{HTTP_HOST} ^yourdomain\.com$ [NC] RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]
全部统一到不带www,例如将 www.idcspy.com 统一到 idcspy.com
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com$ [NC] RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]
RewriteEngine On RewriteCond %{HTTP_HOST} !(^www\.yourdomain\.com$) [NC] RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]
这个可以完成如下几个功能:
在 Htaccess文件中加入 SetEnv TZ Asia/Chongqing 设置时区,Asia/Chongqing 换成你要设置的时区,Asia/Chongqing就表示北京时间。
下面是各种错误页面的定义方式,把 /cgi-bin/exxx.php 部分修改成你要使用的错误页面的路径即可。
#BAD_REQUEST ErrorDocument 400 /cgi-bin/e400.php #UNAUTHORIZED ErrorDocument 401 /cgi-bin/e401.php #FORBIDDEN 禁止访问 ErrorDocument 403 /cgi-bin/e403.php #NOT_FOUND 找不到文件 ErrorDocument 404 /cgi-bin/e404.php #METHOD_NOT_ALLOWED ErrorDocument 405 /cgi-bin/e405.php #REQUEST_TIME_OUT ErrorDocument 408 /cgi-bin/e408.php #GONE ErrorDocument 410 /cgi-bin/e410.php #LENGTH_REQUIRED ErrorDocument 411 /cgi-bin/e411.php #PRECONDITION_FAILED ErrorDocument 412 /cgi-bin/e412.php #REQUEST_ENTITY_TOO_LARGE ErrorDocument 413 /cgi-bin/e413.php #REQUEST_URI_TOO_LARGE ErrorDocument 414 /cgi-bin/e414.php #UNSUPPORTED_MEDIA_TYPE ErrorDocument 415 /cgi-bin/e415.php #INTERNAL_SERVER_ERROR 内部服务器错误 ErrorDocument 500 /cgi-bin/e500.php #NOT_IMPLEMENTED ErrorDocument 501 /cgi-bin/e501.php #BAD_GATEWAY ErrorDocument 502 /cgi-bin/e502.php #SERVICE_UNAVAILABLE 服务不可用 ErrorDocument 503 /cgi-bin/e503.php #VARIANT_ALSO_VARIES ErrorDocument 506 /cgi-bin/e506.php
在Htaccess中加入下面代码给指定文件后缀启用Deflate。Apache2.0以上版本支持Deflate。
<IfModule mod_deflate.c> <FilesMatch "\.(js|css)$"> SetOutputFilter DEFLATE </FilesMatch> </IfModule>
<FilesMatch "\.(js|css)$"> 指定启用Deflate的文件后缀,增加的后缀用|隔开即可,例如 <FilesMatch "\.(js|css|html|php)$">
在.htaccess文件中加入
DirectoryIndex index.html index.htm index.php index.cgi
如果目录没有默认首页文件,将会列出文件列表,可能造成安全隐患,为避免这种情况(而不必创建一堆的新index文件),你可以在你的.htaccess文档中键入以下命令,用以阻止目录列表的显示:
Options -Indexes
这个可以使用Rewrite实现,也可以利用Redirect实现,更详细的说明请大家参考 301转向,这里只给出几个简单的例子。 重定向文件:
Redirect 301 /orddir/ordfile.html http://www.zzbaike.com/newdir/newfile
重定向目录
Redirect 301 /orddir/ http://www.zzbaike.com/newdir/
这个会把旧目录的文件全部转向到新目录的对应文件
也可以用Rewrite实现:
转向到文件
RewriteEngine On RewriteRule ^(.*)$ http://www.zzbaike.com/newfile.html [R=301,L]
这个把所有请求转向到 http://www.zzbaike.com/newfile.html
转向目录
RewriteEngine On RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
将以上的代码301改成302就是302转向。
给目录设置密码保护,在该目录建立一个.htaccess文件,放入如下内容:
AuthUserFile /opt/guide/www.zzbaike.com/.htpasswd AuthType Basic AuthName "Member Page" require valid-user
AuthUserFile 设置密码文件的路径
来自 http://www.zzbaike.com/wiki/Htaccess%E4%BD%BF%E7%94%A8%E5%AE%9E%E4%BE%8B