11 Haziran2014
 

MySQL, Apache ve phpMyAdmin Kurulumu

komutuyla ilgili paketleri kuruyoruz.

komutuyla mysql sunucusunu sistem başlangıcında otomatik çalıştırılmasını sağlıyoruz.

Daha sonra mysql sunucusunu başlatıp root şifresini ayarlayacağız.

Konfigürasyon bilinoyorsa sorulara verilecek cevaplar değişebilir, ancak standart ve güvenli kurulum aşağıdaki gibi olmalıdır (mysqlrootşifreniz yerine kendi mysql root şifremizi yazmalıyız):

Set root password? [Y/n] <-- ENTER
New password: <-- mysqlrootşifreniz
Re-enter new password: <-- mysqlrootşifreniz
Remove anonymous users? [Y/n] <-- ENTER
Disallow root login remotely? [Y/n] <-- ENTER
Remove test database and access to it? [Y/n] <-- ENTER
Reload privilege tables now? [Y/n] <-- ENTER

komutlarıyla /etc/my.cnf dosyasını yedekleyip, düzenleme için açıyoruz:

[...]
[client]
default-character-set=utf8
[...]
[mysqld]
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
#bind-address = 127.0.0.1
[...]

[mysql]
default-character-set=utf8

komutlarıyla mysql sunucusunu tekrar başlatıp, mysqld'nin neleri dinlediğini kontrol ediyoruz ve şuna benzer bir çıktı almalıyız:

tcp      0      0      *:mysql      *:*      LISTEN      1661/mysqld

komutlarıyla /etc/httpd/conf.d/phpMyAdmin.conf dosyasını yedekledik, picoyla açtık;

[...]
#<Directory /usr/share/phpMyAdmin/>
#   <IfModule mod_authz_core.c>
#     # Apache 2.4
#     <RequireAny>
#       Require ip 127.0.0.1
#       Require ip ::1
#     </RequireAny>
#   </IfModule>
#   <IfModule !mod_authz_core.c>
#     # Apache 2.2
#     Order Deny,Allow
#     Deny from All
#     Allow from 127.0.0.1
#     Allow from ::1
#   </IfModule>
#</Directory>
[...]

açıklamadaki gibi kırmızı-kalın diyezleri ilgili satırların başına ekliyoruz.

komutlarıyla /etc/phpMyAdmin/config.inc.php dosyasını yedekledik picoyla açtık;

[...]
/*
* This is needed for cookie based authentication to encrypt password in
* cookie
*/
$cfg['blowfish_secret'] = 'W7F58R'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
[...]
$cfg['Servers'][$i]['auth_type']     = 'cookie';      // Authentication method (config, http or cookie based)?
[...]
$cfg['SaveDir'] = '/var/lib/phpMyAdmin/save';
//$cfg['ThemeDefault'] = 'pmahomme';
$cfg['ThemeDefault'] = 'original';
$cfg['VersionCheck'] = FALSE;

[...]

açıklamalardaki gibi kırmızı-kalın kısımları ilgili yerlere ekliyoruz.

httpd (apache) sunucusunu sistem başlangıcında otomatik çalışacak şekilde ayarladık ve servisi başlattık. Yeniden başlatmak için;

UserDir Özelliği (/home/*/public_html/)

httpd'nin varsayılan kök dizini /var/www/html dizinidir. /home dizini altında herhangi bir kullanıcının web dosyalarını görüntülemek için standart olarak bir public_html dizini oluşturulur ve html, php, asp vb web dosyaları bu dizine atılır. www.alanadi.com/~user1/index.html gibi bir adresi çalıştırmak için aşağıdaki ayarlamaları yapacağız;

komutlarıyla /etc/httpd/conf/httpd.conf dosyasını yedekledik, nanoyla açtık;

[...]
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
#UserDir disabled
UserDir "enabled *"
UserDir "disabled root"

#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir public_html

</IfModule>
[...]
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

[...]
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.php index.php3 index.cgi index.pl index.html index.htm index.shtml index.xhtml
[...]

Açıklamada yeralan kırmızı-kalın kısımlar gibi ilgili yerlerde değişiklik yapıyoruz.

(DİKKAT! Aşağıdaki komutlarda user1 yazan yerlere kendi kullanacağımız kullanıcı adımızı yazıyoruz.)

komutlarıyla da user1 kullanıcısı için public_html klasörü oluşturup ilgili dizinlere okuma-yazma izinlerini verip servisi yeniden başlatıyoruz.

Apache2'nin mod_php, mod_fcgi/PHP5 ve suPHP ile Kurulması

komutuyla başlıktaki ayarlamalar için gerekli olan paketleri kuruyoruz.

komutlarıyla /etc/php.ini dosyasını yedekledik, picoyla açtık;

[...]
;zlib.output_compression = Off
zlib.output_compression = On
[...]
;error_reporting = E_ALL & ~E_DEPRECATED
error_reporting = E_ALL & ~E_NOTICE
[...]
;post_max_size = 8M
post_max_size = 20M
[...]
;default_charset = "iso-8859-1"
default_charset = "utf-8"
[...]
;cgi.fix_pathinfo=1
cgi.fix_pathinfo=1
[...]
; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
;upload_max_filesize = 2M
upload_max_filesize = 20M
[...]
[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
;date.timezone =
date.timezone = Europe/Istanbul

komutlarıyla suphp kaynak kodlarını indirip derliyoruz. /etc/httpd/conf.d/suphp.conf dosyasını pico ile açıyoruz;

LoadModule suphp_module modules/mod_suphp.so

ibaresini ekleyip kaydedip kapatıyoruz.

ile /etc/suphp.conf dosyasını açıyoruz;

[global]
;Path to logfile
logfile=/var/log/httpd/suphp.log

;Loglevel
loglevel=info

;User Apache is running as
webserver_user=apache

;Path all scripts have to be in
docroot=/

;Path to chroot() to before executing script
;chroot=/mychroot
; Security options
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false

;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=true

;Send minor error messages to browser
errors_to_browser=false

;PATH environment variable
env_path=/bin:/usr/bin

;Umask to set, specify in octal notation
umask=0077

; Minimum UID
min_uid=100

; Minimum GID
min_gid=100

[handlers]
;Handler for php-scripts
x-httpd-suphp="php:/usr/bin/php-cgi"

;Handler for CGI-scripts
x-suphp-cgi="execute:!self"

açıklamada yer alan ibareleri ekliyoruz (tümünü).

komutlarıyla /var/www/html dizinine index.html dosyası ekleyip ilgili okuma-yazma izinlerini ayarlıyoruz.

(DİKKAT! Aşağıdaki komutlarda user1 yazan yerlere kendi kullanacağımız kullanıcı adımızı yazıyoruz ve bu kullanıcının sudo yetkisi olmalıdır)

komutlarıyla user1 olarak giriş yapıp /home/user1/public_html dizinine index.html dosyası ekleyip ilgili okuma-yazma izinlerini ayarlıyoruz ve user1'den çıkış yapıyoruz.

/var/www/html dizinine info.php isimli bir dosya oluşturuyoruz.

/home/user1/public_html dizinine info.php isimli bir dosya oluşturuyoruz.

/etc/httpd/conf.d/welcome.conf dosyasını açıyoruz;

#
# This configuration file enables the default "Welcome"
# page if there is no default index page present for
# the root URL. To disable the Welcome page, comment
# out all the lines below.
#
#<LocationMatch "^/+$">
#    Options -Indexes
#    ErrorDocument 403 /error/noindex.html
#</LocationMatch>

ilgili satırların başına kırmızı-kalın yerlerdeki gibi # (diyez) ekliyoruz ki, varsayılan web dizinlerinin ve alt klasörlerin altında indexlenecek dosya olmadığında 404 hata sayfasına yönlendirmesin. Bu şekilde resim veya ilgili arşiv içeriği olan web dizinlerinin altındaki dosyaları da bir liste şeklinde görebiliriz.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(zorunlu)

(zorunlu)

Time limit is exhausted. Please reload CAPTCHA.

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.