Yii2在CentOS下的安装与使用

自闭症网瘾萝莉.ら 提交于 2020-02-25 01:12:30

1、安装composer

root用户执行:

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" 
php composer-setup.php
mv composer.phar /usr/local/bin/composer
mkdir /data/site/localhost/yii/
chown -R Tristone.Tristone /data/site/localhost/yii/

2、更换composer镜像源为阿里云

Composer不能使用root用户操作,只能使用普通用户(Tristone)来操作。

cd /data/site/localhost/yii/
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer clear-cache

3、安装Yii

在普通用户下输入以下命令安装

$ cd /data/site/localhost/yii/
$ composer create-project yiisoft/yii2-app-basic basic

这样就完成了Yii的安装。

4、安装 Assets

Yii依靠 Bower 和/或 NPM 软件包来安装 asset(CSS 和 JavaScript)库。 它使用Composer来获取这些库,允许 PHP 和 CSS/JavaScript 包版本同时解析。 这可以通过使用 asset-packagist.org 或 composer asset plugin 来实现。 有关更多详细信息,请参阅 Assets 文档。
您可能希望通过本地 Bower/NPM 客户端管理您的 assets,使用 CDN 或完全避免 assets 的安装。 为了防止通过 Composer 安装 assets,请将以下几行添加到您的 ‘composer.json’ 中:

"replace": {
    "bower-asset/jquery": ">=1.11.0",
    "bower-asset/inputmask": ">=3.2.0",
    "bower-asset/punycode": ">=1.3.0",
    "bower-asset/yii2-pjax": ">=2.0.0"
},

注意: 在通过 Composer 绕过 assets 安装的情况下,您负责 assets 的安装和解决版本冲突。 准备来自不同扩展名的 assets 文件之间的可能不一致。

使用PHP创建一个WEB服务器,临时测试安装是否正确:

$ /usr/bin/php -S 192.168.1.240:8080 -t /data/site/localhost/yii/basic/web

这样通过浏览器访问:http://192.168.1.240:8080,就能访问Yii的页面了。

Nginx相关的配置:

 vi /etc/nginx/domain/localhost8080.conf
server
{
    charset utf-8;
    client_max_body_size 128M;
    listen       8080;
    server_name  127.0.0.1 192.168.1.240 localhost;
    root         /data/site/localhost/yii/basic/web;
    index index.php index.html index.htm;
    location / {
        # Redirect everything that isn't a real file to index.php
        try_files $uri $uri/ /index.php$is_args$args;
    }
    # uncomment to avoid processing of calls to non-existing static files by Yii
    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    #    try_files $uri =404;
    #}
    #error_page 404 /404.html;
    # deny accessing php files for the /assets directory
    location ~ ^/assets/.*\.php$ {
        deny all;
    }
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
        try_files $uri =404;
    }
    location ~* /\. {
        deny all;
    }
    access_log  /log/domain/localhost/access_8080.log  access;
    error_log  /log/domain/localhost/error_8080.log;
}

使用自带的环境检测工具,检测一下是否满足运行条件:

# mv basic/requirements.php basic/web/

打开链接:http://192.168.1.240:8080/requirements.php
根据提示我们进行针对性的解决:
安装Intl

# dnf -y install php-intl 

Yii的URL去掉index.php,只显示路径的方法

#
# vi config/web.php        #basic基本的应用程序模板
# vi frontend/config/main.php        #advanced高级的应用程序模板

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
    ],
],

把上面内容的注释去掉,就可以实现类似:“http://localhost/user/index”的访问了

添加更多应用程序:

虽然有单独的前端和后端是常见的,有时它是不够的。 例如,您可能需要额外的应用程序,例如博客(blog)。 使用如下方式创建:

  1. 复制 frontend 至 blog,
    复制environments/dev/frontend 至 environments/dev/blog
    复制environments/prod/frontend 至 environments/prod/blog
    2.调整命名空间和路径以 blog 开头(替换 frontend)包括以下文件:
blog/controllers/*
blog/models/*
blog/config/main.php
blog/config/test.php
blog/assets/AppAsset.php
blog/views/layouts/main.php

3.在 common\config\bootstrap.php 中添加

Yii::setAlias('blog', dirname(dirname(__DIR__)) . '/blog');.

4.Nginx或Apache的配置文件修改

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!