Preface
Because I have been very interested in linux, I started an experiment with Raspberry Pi and set up a simple php server to run typecho.
However, the process is extraordinary, and almost every step is stuck. in addition, compared with WordPress, typecho has less data, which makes the process of solving the problem a little difficult.
The first is the Raspberry Pi system. Although there are many official systems, the startup speed is slow, and the support for peripherals such as mobile hard disks is not good. after all, no one really treats Raspberry Pi as a pure blog such as VPS, but still needs to consider its practicality. So here we recommend RaspNAS to you, it provides good support for various mobile peripherals and has the following advantages:
1. Lightweight. The image size of RaspNAS is less than 2 GB, and the memory occupied after startup is very small.
2. Fast. the startup speed is much faster than its raspbian.
3. the background is based on nginx and php. It not only provides an intuitive web Background for monitoring the running status of raspberry pi, but also reduces the difficulty of configuring webpages, in fact, he has a configured webpage environment. In his original version, offline download is not supported. I directly clone yaaw to/var/www to access it directly.
Environment Configuration
To configure the Basic Environment for typecho running, we need the following things: database, nginx server, php environment and some plug-ins. in line with the lightweight principle, we do not use too large mysql, but use lightweight sqlite.
Nginx Configuration
First install nginx
For more information, see <How to setup a web server with Nginx/PHP on Raspberry Pi> In the Ducky Pond blog.
Run
apt-get nginx
You can perform a test after the installation is complete.
service nginx start
You can see the service start prompt and access it with the Raspberry Pi Intranet IP address. If you see the page, nginx is successfully installed.
The default static web site path of nginx is usr/share/nginx/www, which does not conform to the linux convention and is usually var/www.
We can modify this by creating the directory first.
/var/www
Obviously, it is not enough to have such a directory. We also need to tell nginx that we have stored the webpage in this directory. In this case, we need to change the nginx configuration file.
However, before that, we need to know how the nginx configuration file works.
Let's take a look at the nginx directory structure.
cd /etc/nginx/
The result is as follows:
conf.d koi- win--utf naxsi.rules proxy_params
Nginx can create multiple virtual hosts to allow one server to load multiple webpages. Each virtual host corresponds to a configuration file.
The two folders marked in red are used to store and enable these configuration files.
In the sites-enabled folder, It is the folder where the configuration file is loaded when nginx is started. The folder stores something similar to a shortcut, they point to the corresponding configuration file (symlink) in the sites-available folder ). that is to say, sites-available is the folder that stores all configuration files. To enable these configuration files, you only need to mark them in sites-enabled.
First, we disable the default configuration file named default to prevent nginx from using/usr/share/nginx/www as the website directory.
/etc/nginx/sites-enabled/default
Next, create a configuration file in the sites-available Directory. (if you are not familiar with vim or haven't installed vim, you can also use nano or other alternatives, or refer to my previous blog post and use the sftp plug-in of sublime text to edit the configuration file)
vim /etc/nginx/sites-available/mysite
Write the following configuration
/var/
The significance of this configuration file is to create a new server to listen to requests on port 80. The root directory of this server is/var/www, And the indexfile name is index.html#index.htm. If you want more detailed configuration, you can access this page and provide the complete nginx configuration document.
Save and exit, and then enable this configuration file.
cd /etc/nginx/sites- -s ../sites-available/ service nginx start
In this way, we can add html for testing to/var/www to view the effect.
Configure the PHP Environment
Nginx is only used as a reverse proxy and static Web Page Server. Dynamic Web Pages like PHP cannot be executed, so we also need the PHP server to process the code in the PHP Web page, return the result to nginx and return it to the visitor. there are several communication technologies between Web server and php server, in addition to Apache, FastCGI, here, we choose to use FastCGI for communication program PHP-FPM, and a PHP plug-in apc to optimize PHP performance. (In fact, to make typecho work properly, we still need to install the PHP and sqlite communication program. To make this article more organized, this part will be described in the Database Configuration section .)
First install
apt-get php5-fpm php-apc
If you need to install sqlite to configure typecho, You can execute
apt-get php5-fpm php5-sqlite sqllite
After the installation is complete, fpm should start to run automatically. However, to make the apc plug-in operational, we need to restart it.
service php5-fpm restart
Then we are changing the original nginx configuration file to let nginx know where to process the PHP request. open the configured/etc/nginx/sites-available/mysite file and add the sample code for PHP processing.
/var/~/var/run/php5-
Such a simple PHP server has been configured. We can create a simple PHP file to test the server.
Create a new php file in the/var/www/directory, such as myweb. php.
Write the following content
<??>
Restart the nginx service to load the configuration file.
service nginx restart
Test the web page 192.168.1.00/myweb. in php, 192.168.1.100 is the Intranet IP address of your Raspberry Pi. If you can see the page, the configuration is complete. however, it should be noted that because typecho involves rewrite, pathinfo must be supported, so its configuration file cannot be written as the simplest
location ~ .*\.php$
Instead, it needs to be changed
location ~ .*\.php(\/.*)*$
This completes the nginx environment configuration for typecho installation.