如何在 Ubuntu 15.10 上的 Nginx (LEMP) 上安装 TYPO3 7
本教程适用于这些操作系统版本
- Ubuntu 13.10(Saucy Salamander)
在此页
- 1 条初步说明
- 2 安装 APCu
- 3 安装 TYPO3
- 4 本教程的虚拟机镜像下载
- 5 个链接
本教程介绍如何在安装了 Nginx Web 服务器而不是 Apache 的 Ubuntu 15.10 系统上安装和运行 TYPO3(版本 7 LTS)网站。这种设置通常称为 LEMP=Linux + Nginx(发音为“engine x”)+ MySQL + PHP)。 Nginx 是一种快速高效的 HTTP 服务器,它使用的资源比 Apache 少,并且可以更快地交付页面,尤其是静态文件。
1 初步说明
我想在一个名为 www.example.com 的虚拟主机中安装 TYPO3,文件根目录为 /var/www/www.example.com/web。
你应该有一个工作的 LEMP 堆栈。如果您还没有安装 LEMP,请使用本教程:Ubuntu LEMP 服务器
因为我们必须以 root 权限运行本教程中的所有步骤,所以我们可以在本教程中的所有命令前加上字符串 sudo,或者我们现在通过键入成为 root
sudo su
我将使用 nano 编辑器编辑 shell 上的配置文件,可以使用以下命令安装 nano:
apt-get install nano
2 安装APCu
APCu 是一个免费开放的 PHP 操作码缓存器,用于缓存和优化 PHP 中间代码。它类似于其他 PHP 操作码缓存器,例如 eAccelerator 和 XCache。强烈建议安装其中之一以加速您的 PHP 页面。
APCu 可以按如下方式安装:
apt-get install php-apcu
如果您使用 PHP-FPM 作为您的 FastCGI 守护进程,请按如下方式重新启动它:
service php5-fpm restart
3 安装TYPO3
我的 www.example.com 网站的文档根目录是 /var/www/www.example.com/web - 如果它不存在,请按如下方式创建它:
mkdir -p /var/www/www.example.com/web
接下来,我们从 http://typo3.org/download/ 下载 .tar.gz 文件形式的 TYPO3 7,并将其放在我们的文档根目录中:
cd /var/www/www.example.com
wget get.typo3.org/7.6 -O typo3_src-7.6.0.tar.gz
tar xvfz typo3_src-7.6.0.tar.gz
rm typo3_src-7.6.x.tar.gz
cd web
ln -s ../typo3_src-7.6.0 typo3_src
ln -s typo3_src/index.php index.php
ln -s typo3_src/typo3 typo3
建议使文档根目录和其中的 TYPO3 文件可由以用户 www-data 和组 www-data 运行的 Nginx 守护程序写入:
chown -R www-data:www-data /var/www/www.example.com
如果你还没有为TYPO3创建一个MySQL数据库(包括一个MySQL TYPO3用户),你可以按如下方式创建(我在本例中将数据库命名为typo3,用户名为typo3_admin,密码为typo3_admin_password):
mysql --defaults-file=/etc/mysql/debian.cnf
CREATE DATABASE typo3;
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost' IDENTIFIED BY 'typo3_admin_password';
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost.localdomain' IDENTIFIED BY 'typo3_admin_password';
FLUSH PRIVILEGES;
quit
接下来,我们在 /etc/nginx/sites-available/ 目录中为我们的 www.example.com 虚拟主机创建一个 Nginx 虚拟主机配置,如下所示:
nano /etc/nginx/sites-available/www.example.com.vhost
server {
listen 80;
server_name www.example.com example.com;
root /var/www/www.example.com/web;
if ($http_host != "www.example.com") {
rewrite ^ http://www.example.com$request_uri permanent;
}
index index.php index.html;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_read_timeout 1200;
}
client_max_body_size 100M;
location ~ /\.(js|css)$ {
expires 604800s;
}
if (!-e $request_filename){
rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;
}
location ~* ^/fileadmin/(.*/)?_recycler_/ {
deny all;
}
location ~* ^/fileadmin/templates/.*(\.txt|\.ts)$ {
deny all;
}
location ~* ^/typo3conf/ext/[^/]+/Resources/Private/ {
deny all;
}
location ~* ^/(typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) {
}
location / {
if ($query_string ~ ".+") {
return 405;
}
if ($http_cookie ~ 'nc_staticfilecache|be_typo_user|fe_typo_user' ) {
return 405;
} # pass POST requests to PHP
if ($request_method !~ ^(GET|HEAD)$ ) {
return 405;
}
if ($http_pragma = 'no-cache') {
return 405;
}
if ($http_cache_control = 'no-cache') {
return 405;
}
error_page 405 = @nocache;
try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache;
}
location @nocache {
try_files $uri $uri/ /index.php$is_args$args;
}
}
此配置已经包含干净 URL 所需的一切(因为 @nocache 位置中的 try_files $uri $uri/ /index.php$is_args$args; 行)。
接下来确保在 /etc/nginx/mime.types 中有以下行:
nano /etc/nginx/mime.types
[...]
text/x-component htc;
[...]
为了启用虚拟主机,我们从 /etc/nginx/sites-enabled/ 目录创建一个指向它的符号链接:
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost
重新加载 Nginx 以使更改生效:
service nginx reload
在网站根目录中创建 FIRST_INSTALL 文件以启用 TYPO3 安装程序。
touch /var/www/www.example.com/web/FIRST_INSTALL
并将所有者更改为 www-data,以便 TYPO3 安装脚本可以在安装完成时删除该文件。
chown www-data:www-data /var/www/www.example.com/web/FIRST_INSTALL
我们必须调整一些 php.ini 值以符合 TYPO3 的要求。打开 php.ini 文件:
nano /etc/php5/fpm/php.ini
并调整以下配置选项,使它们具有这些值:
[....]
always_populate_raw_post_data=-1
[....]
max_execution_time=240
[....]
post_max_size = 20M
[....]
upload_max_filesize = 20M
[....]
max_input_vars=1500
[....]
memory_limit = 256M
[....]
然后保存文件并重启 PHP-FPM 以加载新配置:
service php5-fpm restart
现在我们可以通过访问 http://www.example.com/ 来启动基于 Web 的 TYPO3 安装程序:

单击“系统看起来不错。继续”按钮开始安装过程。如果此页面显示一条消息,表示未满足所有先决条件,请先调整您的配置以匹配要求,然后再继续安装:
接下来填写数据库详细信息(用户:typo3_admin;密码:typo3_admin_password 来自我们创建 typo3 数据库时的密码),然后单击继续:

在下一页上选择使用现有的空数据库并从下拉菜单中选择 typo3。然后点击继续:

接下来为 TYPO3 管理员用户提供用户名和密码,并为您的 TYPO3 网站输入一个名称。之后点击继续:

安装现已完成。如果您想从一个演示网站而不是一个完全空的系统开始,请选择是,下载分发列表选项(这不会立即安装演示数据,但只会在您可以选择的后端提供一个演示网站安装它)。我会在这里选择不下载任何演示站点。然后点击打开后台:

可以在 http://www.example.com/typo3/ 下找到管理区域。使用您在安装期间定义的用户名 admin 和密码登录:

并使用您在上面创建的 TYPO§ 管理员用户登录。

并开始建立您的 TYPO3 网站。前端将显示类似“服务不可用(503)在根级别找不到页面!”之类的错误,直到您在后端添加根页面。如果您还不熟悉此 CMS,我建议您查看优秀的 TYPO3 文档,了解如何在 TYPO3 中创建您的第一个网站。
4 本教程虚拟机镜像下载
本教程可随时使用 ovf/ova 格式的虚拟机映像,供 Howtoforge 订阅者使用。 VM 格式与 VMWare 和 Virtualbox 兼容。虚拟机映像使用以下登录详细信息:
SSH/外壳登录
用户名:管理员
密码:howtoforge
此用户具有 sudo 权限。
MySQL/MariaDB 登录
用户名:root
密码:howtoforge
VM 的 IP 是 192.168.1.100,可以在文件 /etc/network/interfaces 中更改。
TYPO3登录
用户名:admin
密码:howtoforge
请更改以上所有密码以保护虚拟机。
5个链接
- TYPO3:http://typo3.org/
- Nginx:http://nginx.org/
- Nginx 维基:http://wiki.nginx.org/
- Ubuntu:http://www.ubuntu.com/