I have selected Ubuntu as OS platform to install my php, wordpress and mysql. It gave me lots of learning experience on Linux. Here is many steps I recorded during working on my 51sec.org blog site.1...
I have selected Ubuntu as OS platform to install my php, wordpress and mysql. It gave me lots of learning experience on Linux. Here is many steps I recorded during working on my 51sec.org blog site.
1. Configure Interfaces
Welcome to Ubuntu 15.10 (GNU/Linux 4.2.0-16-generic x86_64) * Documentation: https://help.ubuntu.com/ 48 packages can be updated. 37 updates are security updates. Last login: Sat Feb 13 20:16:03 2016 from 192.168.2.62 [email?protected]:~$ cd /etc/network [email?protected]:/etc/network$ sudo vi interfaces [sudo] password for john: # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface — use DHCP auto eth0 iface eth0 inet dhcp ~ |
2. System Software Update
sudo apt-get update # Fetches the list of available updates sudo apt-get upgrade # Strictly upgrades the current packages sudo apt-get dist-upgrade # Installs updates (new ones) sudo nano /etc/apache2/apache2.conf #add a single line “ServerName server_domain_or_IP “to the biottom of /etc/apache2/apache2.conf file to suppress a warning message. sudo apache2ctl configtest sudo systemctl restart apache2 |
Check Firewall to make sure allow inbound traffic for 80 and 443
[email?protected]:~$ sudo ufw app list sudo: unable to resolve host ip-10-10-0-60 Available applications: Apache Apache Full Apache Secure OpenSSH [email?protected]:~$ sudo ufw app info “Apache Full” sudo: unable to resolve host ip-10-10-0-60 Profile: Apache Full Title: Web Server (HTTP,HTTPS) Description: Apache v2 is the next generation of the omnipresent Apache web server. Ports: 80,443/tcp [email?protected]:~$ sudo ufw allow in “Apache Full” sudo: unable to resolve host ip-10-10-0-60 Rules updated Rules updated (v6) [email?protected]:~$ sudo ufw app info “Apache Full” sudo: unable to resolve host ip-10-10-0-60 Profile: Apache Full Title: Web Server (HTTP,HTTPS) Description: Apache v2 is the next generation of the omnipresent Apache web server. Ports: 80,443/tcp |
[email?protected]:/etc/network$ cat /etc/*-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=15.10 DISTRIB_CODENAME=wily DISTRIB_DESCRIPTION=”Ubuntu 15.10″ NAME=”Ubuntu” VERSION=”15.10 (Wily Werewolf)” ID=ubuntu ID_LIKE=debian PRETTY_NAME=”Ubuntu 15.10″ VERSION_ID=”15.10″ HOME_URL=”http://www.ubuntu.com/” SUPPORT_URL=”http://help.ubuntu.com/” BUG_REPORT_URL=”http://bugs.launchpad.net/ubuntu/” [email?protected]:/etc/network$ [email?protected]:/etc/network$ uname -a |
3. Install LAMP
3.1. Install Apache
To install Apache you must install the Metapackage?apache2. This can be done by searching for and installing in the Software Centre, or by running the following command.sudo apt-get install apache2 |
3.2. Install MySQL
sudo apt-get install mysql-server sudo mysql_install_db sudo mysql_secure_installation |
3.3. Install PHP
To install PHP you must install the Metapackages?php5?and?libapache2-mod-php5. This can be done by searching for and installing in the Software Centre, or by running the following command.sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql |
3.4. Restart Server
Your server should restart Apache automatically after the installation of both MySQL and PHP. If it doesn’t, execute this command.sudo /etc/init.d/apache2 restart |
3.5. Check Apache
Open a web browser and navigate tohttp://localhost/. You should see a message saying?It works!3.6. Check PHP
You can check your PHP by executing any PHP file from within?/var/www/. Alternatively you can execute the following command, which will make PHP run the code without the need for creating a file .
[email?protected]:/etc/network$ php -r ‘echo “\n\nYour PHP installation is working fine.\n\n\n”;’ Your PHP installation is working fine. [email?protected]:~$php -i [email?protected]:~$sudo nano /var/www/html/info.php <?php phpinfo(); ?> |
http://your_server_IP_address/info.php
4. Install Phpmyadmin (Optional)
$ sudo apt-get install phpmyadmin |
follow configuration wizard to finish the configuration, such as choosing :
- apache2 for your web server
- yes for Configure database for phpmyadmin with dbconfig-common?
- MySQL application password for phpmyadmin:
- password for root user Password of the database’s administrative user:
5. Install WordPress
5.1 Install
cd ~ wget http://wordpress.org/latest.tar.gz tar xzvf latest.tar.gz sudo apt-get update sudo apt-get install php5-gd libssh2-php
5.2 Configure
[email?protected]:~$ cd ~/wordpress [email?protected]:~/wordpress$ cp wp-config-sample.php wp-config.php [email?protected]:~/wordpress$ curl -s https://api.wordpress.org/secret-key/1.1/salt/ define('AUTH_KEY', '/c|BO/-!OU8+unm:*{r.iZD/7.Ayge],.Unawgno^!%([email?protected]#U7fdW#3Q<hcq<&/e'); define('SECURE_AUTH_KEY', '5d;:+VIC&Lh6-F>IoYk6eQag=n,;/KB9^589o|Ou)_N-_yb;Bo7$t,}?Uc 4rtgO'); define('LOGGED_IN_KEY', '=/lVrQ?h6yt(yYi9VS=1kZehJ67z4o]bg{dO-jIXl*r8h~3qeUd9BK6!3|#@;.!2'); define('NONCE_KEY', 'HuHK`7HwsW7|jvAXY(AXWFYcWmbvW2-xwNw[HXM0nu?4P.GATiYXZhLsAiaqoF<N'); define('AUTH_SALT', '!qV`*1GT;dRH-Zf6Ylwa*I]]|Y/seeoHqc*-:N11xi.!<d8X|<bA`4ot-2oJrmNO'); define('SECURE_AUTH_SALT', '+TgB6l[^8LgLp65);+PtT2DYideMa>UD=SJZ2jD`[email?protected]>;i:X1JLU{`g'); define('LOGGED_IN_SALT', 'R`~Rhkuzz}v|OM|<$JSjkBd,~y/fsePw[q6:hH>GR{u``I/pmRa_]BkG%g(@K36x'); define('NONCE_SALT', 'C305sfDZGO5~J3XLDp|QLw2]4QYZ1B/#UM[pC6Lt+tvkBi]9pl-k^]e6Cw$,DM1('); [email?protected]:~/wordpress$
[email?protected]:~/wordpress$ nano wp-config.php
5.3 Connect database
Change :
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'wordpressuser'); /** MySQL database password */ define('DB_PASSWORD', 'password');
5.4 Copy Files to /var/www/html and Change Permission
sudo rsync -avP ~/wordpress/ /var/www/html/ cd /var/www/html sudo chown -R ubuntu:www-data * mkdir /var/www/html/wordpress/wp-content/uploads sudo chown -R :www-data /var/www/html/wordpress/wp-content/uploads
5.5 Web Interface Installation
6. Allow Remote WordPress Connection to Mysql
6.1 Change MySql bind interface:
[email?protected]:/etc/mysql/mysql.conf.d$ netstat -ntlp | grep 3306 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
[email?protected]:/etc/mysql/mysql.conf.d$ vi mysqld.cnf
.....
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. # bind-address = 127.0.0.1 bind-address = 0.0.0.0 #
.....
[email?protected]:/etc/mysql/mysql.conf.d$ sudo /etc/init.d/mysql restart sudo: unable to resolve host ip-10-1-1-50 Restarting mysql (via systemctl): mysql.service. [email?protected]:/etc/mysql/mysql.conf.d$ netstat -ntlp | grep 3306 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
6.2 Allow a new user with remote machine name or public ip to access Mysql DB
[email?protected]:/etc/mysql/mysql.conf.d$ sudo mysql -u root -p mysql sudo: unable to resolve host ip-10-1-1-50 Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 74 Server version: 5.7.19-0ubuntu0.16.04.1 (Ubuntu) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create user 'remotewordpressuser'@'ec2-34-215-22-243.us-west-2.compute.amazonaws.com' identified by '1234567890'; ERROR 1396 (HY000): Operation CREATE USER failed for 'remoteuser'@'ec2-34-215-22-243.us-west-2.compute.amazonaws.com' mysql> GRANT ALL ON *.* to [email?protected]'ec2-34-215-22-243.us-west-2.compute.amazonaws.com' identified by '1234567890'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> exit Bye [email?protected]:/etc/mysql/mysql.conf.d$
[[email?protected] html]# mysql -h 50.40.50.80 -u remotewordpressuser -p Enter password: ERROR 1130 (HY000): Host 'ec2-34-215-22-243.us-west-2.compute.amazonaws.com' is not allowed to connect to this MySQL server [[email?protected] html]# [[email?protected] html]# mysql -h 50.40.50.80 -u remotewordpressuser -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 82 Server version: 5.7.19-0ubuntu0.16.04.1 (Ubuntu) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
[[email?protected] html]# cp wp-config.php wp-config.php.old [[email?protected] html]# vi wp-config.php <?php /** * The base configuration for WordPress * * The wp-config.php creation script uses this file during the * installation. You don't have to use the web site, you can * copy this file to "wp-config.php" and fill in the values. * * This file contains the following configurations: * * * MySQL settings * * Secret keys * * Database table prefix * * ABSPATH * * @link https://codex.wordpress.org/Editing_wp-config.php * * @package WordPress */ // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'remotewordpressuser'); /** MySQL database password */ define('DB_PASSWORD', '1234567890'); /** MySQL hostname */ define('DB_HOST', '50.40.50.80'); /** Database Charset to use in creating database tables. */ define('DB_CHARSET', 'utf8mb4'); /** The Database Collate type. Don't change this if in doubt. */ define('DB_COLLATE', ''); /**#@+
Note:
a. Stop Mysql service and Disable it Auto Run when rebooted
[email?protected]:/var/log/apache2$ vmstat -s 1014648 K total memory 310308 K used memory 390732 K active memory 143836 K inactive memory 414364 K free memory 15576 K buffer memory 274400 K swap cache 0 K total swap 0 K used swap 0 K free swap 675 non-nice user cpu ticks 0 nice user cpu ticks 608 system cpu ticks 157804 idle cpu ticks 1517 IO-wait cpu ticks 0 IRQ cpu ticks 15 softirq cpu ticks 527 stolen cpu ticks 205823 pages paged in 23372 pages paged out 0 pages swapped in 0 pages swapped out 97824 interrupts 160060 CPU context switches 1506783521 boot time 1623 forks [email?protected]:/var/log/apache2$ sudo service mysql stop sudo: unable to resolve host ip-10-10-0-55 [email?protected]:/var/log/apache2$ vmstat -s 1014648 K total memory 154184 K used memory 235852 K active memory 132412 K inactive memory 581604 K free memory 15648 K buffer memory 263212 K swap cache 0 K total swap 0 K used swap 0 K free swap 696 non-nice user cpu ticks 0 nice user cpu ticks 612 system cpu ticks 167728 idle cpu ticks 1523 IO-wait cpu ticks 0 IRQ cpu ticks 15 softirq cpu ticks 528 stolen cpu ticks 207123 pages paged in 23868 pages paged out 0 pages swapped in 0 pages swapped out 101681 interrupts 167164 CPU context switches 1506783521 boot time 1657 forks [email?protected]:/var/log/apache2$ sudo nano /etc/init/mysql.conf sudo: unable to resolve host ip-10-10-0-55 GNU nano 2.5.3 File: /etc/init/mysql.conf description "MySQL 5.7 Server" author "Mario Limonciello <[email?protected]>" #start on runlevel [2345] stop on starting rc RUNLEVEL=[016] respawn respawn limit 2 5 env HOME=/etc/mysql umask 007 # The default of 5 seconds is too low for mysql which needs to flush buffers kill timeout 300
b. Stop Apache2 Service and Disable it Auto Run when rebooted
- systemctl command – Only works on systemd based Ubuntu like version 16.04 LTS and above.
- /etc/init.d/apache2 – A sys v init style script to start / stop / restart the Apache2 service under Debian or Ubuntu Linux.
- service command – This command work in most Linux distributions including Debian and Ubuntu.
- upstart command – Only works on certain version of Ubuntu.
- apache2ctl command – This method should work on all Linux and Unix likeoperating systems.
$ lsb_release -a $ sudo systemctl stop apache2.service $ sudo systemctl status apache2.service
$ sudo apt-get install rcconf $ sudo rcconf
7. Install free https certificate
https://letsencrypt.org/ provides free ssl/tls certificate for popular application platform using Certbot ACME client to simplify the whole process.
$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-get install python-certbot-apache
$ sudo certbot --apache
Reference:
- Tutorial: Hosting a WordPress Blog with Amazon Linux
- Tutorial: Installing a LAMP Web Server on Amazon Linux
- How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 16.04
- How To Install WordPress with LAMP on Ubuntu 16.04
Share this:
- more
Like this:
Like Loading...Related
本文标题为:Ubuntu LAMP and WordPress Installation
基础教程推荐
- 织梦dedecms如何在dede:sql中使用[field:global.autoindex/] 2022-08-27
- pbootcms网站自动清理runtime缓存方法 2023-07-09
- dedecms织梦无需登录注册可下单购买的修改 2022-11-04
- PbootCMS网站标题描述等标签限制字数的办法 2023-07-08
- dedecms织梦全局变量调用方法总结 2023-07-08
- dedecms根据来访IP区域自动跳转对应页面的方法 2022-07-21
- 织梦dedecms调用当前栏目文章数的方法 2022-11-08
- 织梦DedeCMS搜索指定多个栏目文档的办法 2022-11-11
- dedecms织梦cms常用判断语句汇总 2022-06-24
- pbootcms二次开发必须要了解的后台目录结构 2023-07-09