Difference between revisions of "Talk:Server"

From ArchWiki
Jump to: navigation, search
(LAMP: LAMP has these info.)
m (Move HTTP servers into List of applications/Internet: remove closed discussion)
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Original Document ==
{{Box Note|This document was the original and is kept here for reference during the rewrite}}
=== Configuration ===
==== PHP ====
PHP is practically available out of the box now.
* Add these line in <code>/etc/httpd/conf/httpd.conf</code>
LoadModule php5_module modules/libphp5.so
Include conf/extra/php5_module.conf
NOTE: The "Include" can not be directly after the "LoadModule" line in the configuration file, it need to be down with the other "Includes".
LoadModule php5_module  /usr/lib/httpd/modules/libphp5.so
AddHandler php5-script php
* Remember to add a file handler for .phtml if you need it in /etc/httpd/conf/extra/php5_module.conf:
DirectoryIndex index.php index.phtml index.html
* If you want the libGD module, uncomment in <code>/etc/php/php.ini</code>:
Pay attention to which extension you uncomment, as this extension is sometimes mentioned in an explanatory comment before the actual line you want to uncomment.
* If your <code>DocumentRoot</code> is outside of <code>/home/</code>, add it to <code>open_basedir</code> in <code>/etc/php/php.ini</code> as such:
open_basedir = /home/:/tmp/:/usr/share/pear/:/path/to/documentroot
suggestion - Add your document root as follows:
open_basedir = /home/:/tmp/:/usr/share/pear/:/srv/http
* Restart the Apache service to make changes take effect (as root):
# /etc/rc.d/httpd restart
* Test PHP with a simple, but very informative script:
<title>PHP Test Page</title>
This is Arch Linux, running PHP.
Save this file as <code>test.php</code> and copy to <code>/srv/http/</code> or to <code>~/public_html</code> if you permitted such a configuration.<!-- Also, remember to make it executable (<code>chmod o+x test.php</code>).-->
* Test PHP: http://localhost/test.php or http://localhost/~myname/test.php
'''If you continue to have problems''', edit your /etc/httpd/conf/httpd.conf file with the following information
* Edit your httpd.conf file
# nano /etc/httpd/conf/httpd.conf
* Under <code><IfModule mime_module></code>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
* Restart Apache
# /etc/rc.d/httpd restart
Be sure to test the page again to verify it's working properly (as stated above).
==== MySQL ====
* Configure MySQL as described at the [[MySQL]] wiki.
* Edit <code>/etc/php/php.ini</code> (this is in <code>/usr/etc</code> on older systems) to uncomment the following line (''By removing <code>;</code>''):
* You can add minor privileged users for your web scripts by editing the tables found in the <code>mysql</code> database. You have to restart MySQL for changes to take effect. Don't forget to check the <code>mysql/users</code> table. If there's a second entry for root and your hostname is left with no password set, everybody from your host probably could gain full access. Perhaps see next section for these jobs.
* Run in terminal (as root):
# /etc/rc.d/mysqld start
* MySQL should now be running. Test by visiting <code>http://localhost/phpMyAdmin</code> in a web browser - for testing by phpMyAdmin, you should have installed phpMyAdmin (<code>pacman -S phpmyadmin</code>). It should display phpMyAdmin main page.
* Edit <code>/etc/rc.conf</code> (to start MySQL at boot):
DAEMONS=(... '''mysqld''' ...)
'''Or''' add this line to <code>rc.local</code>:
/etc/rc.d/mysqld start
* You can get the "<code>error no. 2013: Lost Connection to mysql server during query</code>" message instantly whenever you try to connect to the MySQL daemon by TCP/IP. This is the TCP wrappers system (tcpd), which uses the <code>hosts_access(5)</code> system to allow or disallow connections.
* If you're running into this problem, be sure to add this to your /etc/hosts.allow file:
  # mysqld : ALL : ALLOW
  # mysqld-max : ALL : ALLOW
  # and similar for the other MySQL daemons.
* Notes: The examples above are the simplest case, telling tcpd to allow connections from anywhere. You may wish to use a more-appropriate choice of permissible sources instead of ALL. Just make sure that localhost and the IP address (numeric or DNS) of the interface by which you connect are specified.
* You might also need to edit <code>/etc/my.cnf</code> and comment out the <code>skip-networking</code> line as such:

Latest revision as of 15:54, 17 March 2018