顯示具有 apache 標籤的文章。 顯示所有文章
顯示具有 apache 標籤的文章。 顯示所有文章

2017年10月5日

Debian Fail2Ban 安裝設定筆記

安裝
apt-get install fail2ban

設定檔
/etc/fail2ban/fail2ban.conf

check
logtarget = /var/log/fail2ban.log

cp jail.conf jail.local
修改jail.local內容就好, 原始檔不動
jail.local設定會覆蓋jail.conf

注意事項
ignoreip = 127.0.0.1/8 192.168.1.0/24 (空白區隔)
bantime = 600(秒)
maxretry = 10 (失敗幾次封鎖)

增加dovecot

[dovecot]
enabled = true
port = pop3,pop3s,imap,imaps
filter = dovecot
logpath = /var/log/dovecot (看實際 log檔放哪)
maxretry  = 10

/etc/fail2ban/filter.d/dovecot.conf
[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P\S*),.*
ignoreregex =

/etc/fail2ban/filter.d/sasl.conf
failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+/ ]*={0,2})?$
=========
測規則
Example1
fail2ban-regex /var/log/dovecot /etc/fail2ban/filter.d/dovecot.conf

Example2
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf

Example3
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/sasl.conf

2014年8月13日

Apache,PHP調校設定



編輯 /etc/apache2/apache2.conf or httpd.conf
加上 EnableSendfile Off
伺服器沒支援的話,要關掉,否則無法正常顯示圖片!

編輯 /etc/apache2/apache2.conf
加上 ServerName 127.0.0.1



編輯C:\WINDOWS\php.ini

打開output_buffering
output_buffering = Off -> output_buffering = On

打開PDO for mysql
extension=php_pdo_mysql.dll

記憶體限制調大
memory_limit = 8M 改為 32M

設定時區
date.timezone = "Asia/Taipei"

2014年7月21日

Windows下於tomcat內架設JavaBridge


下載tomcat可攜版,假設tomcat放在c:\tomcat下

1.設定tomcat可正常執行

設定系統環境變數
CATALINA_HOME=c:\tomcat
Path=......;%CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar

編輯tomcat/bin/startup.bat加入以下
set "JAVA_HOME=C:\Program Files (x86)\Java\jre7"
set "CATALINA_HOME=c:\tomcat"

2.複製JavaBridge.war至tomcat/weapps/下,移除webapps下其他目錄


tomcat會建立tomcat/webapps/JabaBridge目錄,此時JavaBridge.war可移除

從C:\tomcat\Webapps\JavaBridge\WEB-INF\lib複製JavaBridge.jar, php-servlet.jar and php-script.jar
到C:\tomcat\lib\


3.編輯web.xml加入以下

<listener><listener-class>php.java.servlet.ContextLoaderListener</listener-class></listener>
<servlet><servlet-name>PhpJavaServlet</servlet-name><servlet-class>php.java.servlet.PhpJavaServlet</servlet-class>
</servlet>
<servlet><servlet-name>PhpCGIServlet</servlet-name><servlet-class>php.java.servlet.fastcgi.FastCGIServlet</servlet-class>
<init-param><param-name>prefer_system_php_exec</param-name><param-value>On</param-value></init-param>
<init-param><param-name>php_include_java</param-name><param-value>Off</param-value></init-param>
</servlet>
<servlet-mapping><servlet-name>PhpJavaServlet</servlet-name><url-pattern>*.phpjavabridge</url-pattern> </servlet-mapping>
<servlet-mapping><servlet-name>PhpCGIServlet</servlet-name><url-pattern>*.php</url-pattern></servlet-mapping>

4.測試

執行tomcat/bin/startup.bat來啟動tomcat

於apache下之javatest.php
require_once("http://127.0.0.1:8080/JavaBridge/java/Java.inc");
$j = new Java('java.lang.system');
echo $j->getProperty('java.version');

2014年6月30日

Codeigniter 初始設定



設定預設的Controller
application/config/route.php 
$route['default_controller'] = "welcome";

設定要自動load的library或model
application/config/autoload.php 
$autoload['helper'] = array('url');
$autoload['libraries'] = array('database','session');
$autoload['model'] = array();

設定資料庫連結
application/config/database.php

設定自已要用的常數
application/config/constants.php
define('ROOT', str_replace('/application/config/constants.php', '', str_replace('\\', '/', __FILE__)));

設定.htaccess 移除index.php(記得apache的mod_rewrite要打開)

<IfModule mod_rewrite.c>
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>

2014年4月30日

Java-Bridge Windows安裝筆記(免Tomcat) 2014

*不要再找java.so或java.dll了,那已是過時的資訊



1.安裝JDK或JRE

2.取得JavaBridge.jar,php-script.jar,php-servlet.jar (JavaBridge.war解開)

3.找個地方放javabridge把JavaBridge.jar,php-script.jar,php-servlet.jar這三個檔摳過去

C:\javabridge



再來到命令列

"C:\Program Files (x86)\Java\***\bin\java" -jar "C:\javabridge\JavaBridge.jar" SERVLET:8080


2013年12月9日

Debian 安裝 Tomcat7 筆記

安裝JDK
#tar zxvf jdk-7u45-linux-i586.tar.gz
#mv jdk1.7.0_45/ /usr/local/

建立link
#ln -s /usr/local/jdk1.7.0_45/ /usr/local/jdk

編輯/etc/environment
JAVA_HOME=/usr/local/jdk
CLASSPATH=$JAVA_HOME/lib

安裝Apache,Tomcat7
#apt-get install tomcat7 apache2 install libapache2-mod-jk



編輯/etc/tomcat7/server.xml
取消 <"8009" protocol="AJP1.3" redirectPort="8443" />

編輯 /etc/libapache2-mod-jk/workers.properties
workers.tomcat_home=/usr/share/tomcat7
workers.java_home=/usr/local/jdk
worker.myworker.host=localhost

編輯 /etc/apache2/sites-enabled/000-default
Before </virtualhost> Add
JkMount /*.jsp ajp13_worker
JkMount /*.do ajp13_worker
JkUnMount /*.php ajp13_worker 
找個test.jsp來測試
收工! 

tomcat-users.xml
<role rolename="admin"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat" password="secret" roles="manager-gui,manager-script,manager-jmx,manager-status,manager,admin"/>

2012年2月23日

SVN安裝備忘

安裝
aptg libapache2-svn subversion
建立目錄
mkdir -p /home/svn/repository/
svnadmin create /home/svn/repository/PROJECT_NAME

設定owner
chown -R www-data.www-data /home/svn/repository/PROJECT_NAME

編輯
/etc/apache2/mods-available/dav_svn.conf
修改如下,如沒有,a2enmod dav_svn自動產生

  DAV svn
  SVNParentPath /home/svn/repository
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  AuthzSVNAccessFile /etc/apache2/dav_svn.authz
  Require valid-user


編輯
/etc/apache2/dav_svn.authz

[PROJECT_NAME:/]
* =
user1 = rw
user2 = rw


PS:PROJECT_NAME:/目錄名

增加帳號/密碼到/etc/apache2/dav_svn.passwd
/usr/bin/htpasswd -c /etc/apache2/dav_svn.passwd user1
/usr/bin/htpasswd /etc/apache2/dav_svn.passwd user1


重新啟動apache

checkout(co)/commit(ci)/update(up)
svn co http://ip.or.domain/svn/PROJECT_NAME


備份:
svnadmin dump /path/to/project/ >/tmp/project.dump

還原:
先刪除
rm /path/to/project

再建立
svnadmin create /path/to/project
svnadmin load    /path/to/project < /tmp/project.dump
chown www-data.www-data -R /path/to/project


其他: 
唯一識別ID:(Client端應該是認這個,uuid不同應該會不能用)
 /PROJECT_NAME/db/uuid

2011年11月17日

Squirrelmail安裝筆記

安裝
aptg squirrelmail

設定介面
/usr/sbin/squirrelmail/mail-configure

複製設定檔
cp /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf

如apache已有設定
編輯/etc/apache2/sites-enable/default
加上如下內容
[VirtualHost *:80]
       DocumentRoot /usr/share/squirrelmail
        ServerName yourdomain.com

[/VirtualHost]
就可以用http://yourdomain.com/ 來登入

1.郵件列表中文出現亂碼時,編輯 /config/config.php:
$squirrelmail_default_language = ‘zh_TW’;
$default_charset = ‘big5′;
$lossy_encoding = false;

2.操作介面中文出現亂碼時,編輯 /functions/i18n.php:
$languages[’zh_TW’][’NAME’] = ‘Chinese Trad’;
$languages[’zh_TW’][’CHARSET’] = ‘big5′;
$languages[’zh_TW’][’LOCALE’] = array(‘zh_TW.UTF-8′, ‘zh_TW.big5′);
$languages[’tw’][’ALIAS’] = ‘zh_TW’;

3.下載附件中文檔名亂碼,編輯src/download.php:
$filename = charset_encode($filename,$default_charset,false);
$filename = iconv(“big5〃,”utf-8〃,$filename); //新增這一行

2011年7月26日

LAMP安裝備忘(Linux Apache Mysql Php) on Debian

apt-get install apache2 mysql-server php5 php5-mysql

apache2設定

編輯 /etc/apache2/apache2.conf or httpd.conf
加上 EnableSendfile Off

編輯 /etc/apache2/apache2.conf
加上 ServerName 127.0.0.1

mysql設定

編輯 /etc/mysql/my.cnf
修改 bind-address = 127.0.0.1 => #bind-address = 127.0.0.1
[mysqld]之下加入(跟效能調校有關)
max_connect_errors = 1844674407370954751
connect_timeout = 20
skip-name-resolve
slave_net_timeout = 30


建帳號、新增使用者
mysql> grant all privileges on *.* to 'vega'@'localhost' identified by 'vega' with grant option;

mysql> grant all privileges on *.* to 'vega'@'%' identified by 'vega' with grant option;

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON dbname.* to 'vega'@'%' identified by 'vega';

更新權限
mysql>flush privileges;

改密碼
mysql>update user set Password=PASSWORD('new_pass') where user='root';

MYSQL 5.7版已無Password欄位
update user set authentication_string=password('1111') where user='root';

看權限
SHOW GRANTS FOR 'vega'@'%';

2011年5月2日

$HTTP_GET_VARS,$HTTP_POST_VARS無法使用

安裝完APACHE+PHP網頁發現網頁部份功能不能使用
發現是$HTTP_XXX_VARS等變數無法使用,這是PHP4之前版本的寫法

$HTTP_SERVER_VARS

$HTTP_POST_VARS
$HTTP_GET_VARS


如要能夠使用舊寫法
編輯php.ini設定
register_globals = On
register_long_arrays = On
 
不過打開後會降低PHP效能
另一種方式是通通改成新的寫法
$_SERVER
$_GET
$_POST
即可

2011年4月27日

Linux Apache 圖片無法正常顯示

今天在重新安裝Apache時發現無法正常顯示圖片
Firefox完全無法顯示,IE則是顯示一半

解決方式:
在httpd.conf或apache2.conf加上

EnableSendfile Off

伺服器沒支援這東西的話,就要關掉.

2011年4月21日

Apache2 安裝evasive模組阻檔SYN攻擊

無法查看此摘要。請 按這裡查看文章。

2011年4月15日

防止SYN攻擊

最近防火牆怪怪的,發現是架的網站被攻擊把防火牆操掛了.
上網找了幾個調校方式,在這邊記錄一下.
調整sysctl前三項效果就蠻明顯的,其他的還沒有測試.

vi /etc/sysctl.conf

#開啟SYN Cookies,可防少量SYN攻擊,預設為0=關閉
net.ipv4.tcp_syncookies = 1
#開啟REUSE,把TIME-WAIT Socket拿來再利用於其他TCP連線,預設為0=關閉
net.ipv4.tcp_tw_reuse = 1
#開啟連接快速回收,預設為0=關閉
net.ipv4.tcp_tw_recycle = 1
#把backlog數值由1024增加到2048
net.ipv4.tcp_max_syn_backlog = 2048
#把重試次數由5次減為2次
net.ipv4.tcp_synack_retries = 2

立即套用
#/sbin/sysctl -p

iptable部份調校
例如將SYN請求的次數限制在30次每分鐘,系統默認是5次/秒,顯然太高,同時將burst從默認的5個降低到2個。
將SYN請求次數限制 30次/分(預設是5次/秒),Burst由5個降為2個.
/sbin/iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 30/m --limit-burst 2 -j ACCEPT


2010年9月23日

Apache 錯誤訊息:Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Apache在重新啟動時出現警告訊息:

Restarting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName





解決方式如下:
vi /etc/apache2/apache2.conf

最後一行加上
ServerName 127.0.0.1

重新啟動後就不會再出現.

Apache關掉檔案列表,檔案清單

Apache 如目錄下不存在index.php會把檔案、目錄列出來,以下是關掉的方法.

vi /etc/apache2/sites-available/default
...
DocumentRoot /var/www/
Options Indexes FollowSymLinks   <-移除紅字部份再存檔即可
AllowOverride None

...

2010年8月10日

Awstat 流量統計

#apt-get install awstats

cd /etc/awstats/
cp awstats.conf awstats.w1.test..com.conf
cp awstats.conf awstats.w2.test..com.conf

修改內容
#vi awstats.w1.test.com.conf
...
LogFile="/var/log/apache2/access.log"
LogFormat=1
SiteDomain="w1.test.com"
DNSLookup=0
DirCgi="/awstats"

#vi /etc/apache2/site-available/test.com

NameVirtualHost 192.168.1.6:80/usr/lib/cgi-bin/awstats.pl -config=aaa.ns2go.com -update



DocumentRoot /var/www
ServerName 192.168.1.6
ServerAdmin w1@test.com
# ErrorLog logs/test.com-error_log
# CustomLog logs/test.com-access_log common



DocumentRoot /var/www/w1
ServerName w1.test.com
ServerAdmin w1@test.com
CustomLog "/var/log/apache2/w1.test.com.log" combined

Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon/ "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css
ScriptAlias /awstats/ /usr/lib/cgi-bin/


Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Options None
AllowOverride None
Order allow,deny
Allow from All





更新記錄
#/usr/lib/cgi-bin/awstats.pl -config=w1.test.com -update

查看記錄網址
http://aaa.ns2go.com/awstats/awstats.pl?config=w1.test.com

定期執行
vi /etc/crontab
*/5 * *   *  *  root  /usr/lib/cgi-bin/awstats.pl -config=w1.test.com -update

2010年8月4日

Apache 流量限制

安裝 libapache2-mod-bw
apt-get install libapache2-mod-bw
啟用bw模組
a2enmod bw

在虛擬網站設定加入參數
[VirtualHost w1.test.com:80]

bahlah...
bahlah...

BandWidthModule On
ForceBandWidthModule On
Bandwidth all 10240

bahlah...
bahlah...
[/VirtualHost]


存檔後重新啟動apache即可.
==================================================
可調整參數有
BandWidthModule [On|Off]
ForceBandWidthModule [On|Off]
 
BandWidth [from] [bytes/s]
MinBandWidth [from] [bytes/s]
[from]可以是localhost,192.168.1.0/24,all
[bytes/s]就是速度
 
LargeFileLimit [type][min size][bytes/s]
大檔限制,檔案超過[min size]就把速度限在[bytes/s]
 
BandWidthPacket [size]
一般不作調整
 
BandWidthError [error]
 
MaxConnection [from][max]
限制最大連線數

Apache 虛擬網站架設

目的在同一主機上使用一個IP架設多個網站

首要條件就是dns要設定正解至虛擬主機IP
test.com dns設定
dns IN A 123.123.123.123
w1 IN CNAME dns
w2 IN CNAME dns

在/etc//apache2/sites-available/ 建立 test.com 檔並編輯

<VirtualHost *:80>
DocumentRoot /var/www
ServerName 192.168.1.6
ServerAdmin w1@test.com
ErrorLog logs/w1.test.com-error_log
CustomLog logs/w1.test.com-access_log common
</VirtualHost>

<VirtualHost *:80>

DocumentRoot /var/www/w1
ServerName w1.test.com
ServerAdmin w1@test.com
ErrorLog logs/w1.test.com-error_log
CustomLog logs/w1.test.com-access_log common
</VirtualHost>

<VirtualHost *:80>

DocumentRoot /var/www/w2
ServerName w2.test.com
ServerAdmin w2@test.com
ErrorLog logs/w2.test.com-error_log
CustomLog logs/w2.test.com-access_log common

</VirtualHost>

存檔後,執行a2ensite
 
root@public:/etc/apache2/sites-available# a2ensite

Your choices are: default default-ssl test.com
Which site(s) do you want to enable (wildcards ok)?

輸入test.com
接著重新啟重apache
在網址列輸入w1.test.com 與 w2.test.com就會各別連至不同的網站了.

2010年6月17日

PHP錯誤訊息 Allowed memory size of xxx bytes exhausted

執行PHP出現以下錯誤訊息
Allowed memory size of xxx bytes exhausted ......

修改php.ini
找到memory_limit = 8M 改為 32M

2010年6月14日

apache2載入要使用的模組

不知為何apache2在/etc/apache2/httpd.conf 這個檔案變成空的.

好像把所有功能都模組化寫到/etc/apache2/mods-available裡面

如果要加入模組功能要在 /etc/apache2/mods-enabled 建立link
比方說要加入userdir這個模組好了:

ln -s ../mods-available/userdir.conf userdir.conf
ln -s ../mods-available/userdir.load userdir.load

之後再重新啟動apache即可.


新指令
a2enmod userdir

就會自動把 uerdir 模組的連結加到 /etc/apache2/mods-enabled/ 目錄下