หน้าเว็บ

วันพฤหัสบดีที่ 20 มิถุนายน พ.ศ. 2556

How to Enable and Configure Apache2 Userdir Module in Ubuntu Server 12.04+/Linux Mint 14+

Apache2 userdir module is used to create a webroot in the user’s home directory. By using userdir module each user that is in the system will have the Apache2 root directory with the folder name public_html  in the home directory, If you using any web browser to access the webroot folder in the user directory you should use the “~” afterwards username. So, the url address to be http://[hostname]/~username/

By default Userdir Module is available when apache2 package installed on ubuntu server but not yet active. We just need to enable userdir module to be used. Follow the guide how to enable Apache2 Userdir Module in ubuntu server.

โดยปกติ apache2 จะไม่เปิดการให้บริการกับ user เพื่อทำเวปไซค์ได้ ต้องตั้งค่าต่างๆ ด้วยมือครับ คำสั่งย่อๆ สั้นๆ ใช้งานได้ตั้งแต่ ubuntu 12.04 ขึ้นไป หรือ Linux Mint 14 ขึ้นไปครับ

Enable Apache2 Userdir Module in Ubuntu Server 12.04


Make sure the Apache webserver is installed correctly. I’ve already wrote about How to Install LAMP server you can found it here.

Use command a2enmod to enable Apache2 userdir module. these command will be create symlink /etc/apache2/mods-available/userdir.load and /etc/apache2/mods-available/userdir.conf in to directory /etc/apache2/mods-enable/

sudo a2enmod userdir

Restart apache2 daemon with following command

sudo service apache2 restart

Ceate folder “public_html” in the home directory, then set permission public_html folder to 0755

mkdir ~/public_html && chmod 0755 ~/public_html

Apache2 Userdir Module Support PHP Script ทำให้ user สามารถใช้งาน php ได้ด้วย เพราะปกติจะใช้งานได้แค่ไฟล์ htm,html เท่านั้นครับ


After userdir module enabled, users can put HTML files into the folder /home/username/public_html. But only static HTML files only, PHP scripts can not be used. Although Apache2 have been bundled with PHP module.

PHP files from user’s public_html directory is disabled by default for security reasons. so that all PHP files that is inside the public_html folder will be recognized as mime-type Application/octet-stream and will be downloaded when accessed via web browser. If you want to enable PHP processing when using userdir this is what you need to do. First you edit following Apache configuration file in this way:

sudo nano /etc/apache2/mods-available/php5.conf

Now you need to comment out a line php_admin_value engine Off

Before:

 <IfModule mod_userdir.c> 
<Directory /home/*/public_html>
 php_admin_value engine Off
 </Directory>
 </IfModule> …

After:

 <IfModule mod_userdir.c> 
<Directory /home/*/public_html>
 # php_admin_value engine Off
 </Directory>
 </IfModule> …

Save and exit, then reload apache2 configuration with following commad:

sudo /etc/init.d/apache2 reload

To testing PHP script work or not in the public_html directory, you can create some php script. In this case we are using phpinfo, in terminal type following command

echo '<?php phpinfo(); ?>' > ~/public_html/info.php
อ่านมาตั้งนาน งงกันไม๊ครับ เป็นวิธีการทำให้ directories ของ user สามารถใช้งานเป็นเวปไซค์ของตัวเองได้ โดยจะมี ~user เป็น path ตาม url ครับ เช่น http://127.0.0.1/~ton/info.php ครับ ก็จะเห็นหน้าต่างแสดงรายละเอียดการตั้งค่าต่างๆของ server php5 และอื่นๆ ครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น