Ubuntu搭建LNMP部署Laravel(Nginx+MySql+PHP7.1)

假设已经安装了 Ubuntu Server

排除可能出现的语言问题

sudo apt-get update
sudo apt-get install -y language-pack-en-base
locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

添加 Nginx 仓库 (添加最新稳定版Nginx)

apt-add-repository ppa:nginx/stable

更新包列表

sudo apt-get update

安装 Nginx

sudo apt-get install nginx

安装 MySql

sudo apt-get install mysql-server mysql-client

添加 PHP 仓库

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

更新包列表

sudo apt-get update

安装 PHP7.1

sudo apt-get update 
sudo apt-get install php7.1
sudo apt-get install php7.1-mysql
sudo apt-get install php7.1-fpm
sudo apt-get install php7.1-curl php7.0-xml php7.0-mcrypt php7.0-json php7.0-gd php7.0-mbstring

配置PHP

sudo vim /etc/php/7.1/fpm/php.ini

#将cgi.fix_pathinfo=1这一行去掉注释,将1改为0。

配置php-fpm

sudo vim /etc/php/7.1/fpm/pool.d/www.conf

#  配置这个 listen = /var/run/php7.1-fpm.sock

nginx 配置

sudo vim /etc/nginx/sites-enabled/defaultlisten 80 default_server;

listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root your_website_root;
index index.php index.html index.htm;

# Make site accessible from http://localhost/
server_name your_domain;

location / {
	# First attempt to serve request as file, then
	# as directory, then fall back to displaying a 404.
	try_files $uri $uri/ /index.php?$query_string;
	# Uncomment to enable naxsi on this location
	# include /etc/nginx/naxsi.rules
}
location ~ \.php$ {
	try_files $uri /index.php =404;
	fastcgi_split_path_info ^(.+\.php)(/.+)$;
	fastcgi_pass unix:/var/run/php7.0-fpm.sock;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include fastcgi_params;
}

般以上配置中 location ~ \.php$… 适用于Laravel路由

部署 Laravel

安装composer

cd ~
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

cd 进入 Nginx 配置中 your_website_root

sudo composer create-project laravel/laravel laravel

至此 全部安装完成

文章部分内容引自:https://laravist.com/blog/post/deploy-laravel-app-on-ubuntu-vps

加载外部网页[UIWebView][Swift]

ViewController.swift

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // 给定位置及宽高设定矩形rect
        let rect = CGRect(x: 0, y:50, width: 320, height: 960)
        // 将UIWebView控件与rect绑定并声明
        let webView = UIWebView(frame: rect)
        // 指定访问url
        let url = URL(string: "http://4999.in")
        let request = URLRequest(url: url!)
        // 将访问参数与webView绑定
        webView.loadRequest(request)
        // 将webView显示在视图
        self.view.addSubview(webView)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

随后运行项目 模拟器中空白

2016-11-20 17:09:20.643 Test[4253:402829] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file.

提示配置不允许访问http的网址 并提示可以通过修改Info.plist文件

解决办法:

项目根目录打开 Info.plist

在上图中创建App Transport Security Settings

随后在App Transport Security Settings下创建 Allow Arbitrary Loads 并设定值YES

再次运行此代码则可正常访问http

DESTOON添加文章列表不显示问题解决

在后台添加展会内容,前台不显示。

由于对DESTOON的不熟悉索性直接追代码。

http://destoon.com/exhibit/list.php?catid=4

项目/模块/对应文件

DT_ROOT/exhibit/list.php

根据加载 查看

DT_ROOT/module/exhibit/list.inc.php

获取并拼接数据的这段代码,打印SQL语句

SELECT FROM destoon_exhibit WHERE status=3 AND catid=4 ORDER BY addtime desc LIMIT 0,200

得出此段并未获取到$MOD[‘fields’]

回到后台,进入模块设置

填写所需查找字段即可,其实CMS设计获取数据中完全可以进行判断,是否有填入,默认空时字段为默认所需字段可避免非技术人员误触导致出错。

Yii中AssetBundle资源包使用

在文档中,AssetBundle的使用细节未涉及在此实例记录。

assts/BaseAsset.php

<?php  namespace app\assets;
use yii\web\AssetBundle;

/**
 * Base布局模版资源包
 */
class e extends AssetBundle{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'assets/css/bootstrap.min.css'
    ];
    public $js = [
        'assets/js/jquery-1.10.2.min.js',
        'assets/js/jquery-migrate-1.2.1.js'
    ];
    public $depends = [

    ];
}
?>

views/layout/base.php

<?php
use yii\helpers\Html;
use app\assets\BaseAsset;

BaseAsset::register($this);
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>

<html lang="<?= Yii::$app->language ?>">
	<head>
		<meta charset="<?= Yii::$app->charset ?>">
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta name="description" content="">
		<?= Html::csrfMetaTags() ?>
	        <title><?= Html::encode($this->title) ?></title>
		<?php $this->head() ?>
		<!-- Favicon -->
		<link rel="shortcut icon" href="assets/images/favicon.ico">
	</head>
<body>
<?php $this->beginBody() ?>
header
<?php echo $content ?>
footer
<?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>

视图中

BaseAsset::register($this);

注册后

<?php $this->beginPage() ?>
<?php $this->beginBody() ?>
<?php $this->endBody() ?>
<?php $this->endPage() ?>

均须写入到视图中的相应位置方能使 资源文件 加载至默认位置。

小记WordPress语言包修改及生成

在WordPress中语言包分 .po 和 .mo 文件。

.po 文件为可编辑文件,.mo 为编译后文件。

WordPress 运行时调用 .mo 文件,所以在 .po 文件编辑后需要生成 .mo 文件至线上。

推荐使用Poedit编辑 .po 文件,保存后自动生成编译后的 .mo 同名文件可直接使用。

Poedit 官方提供 Windows / Mac / (Unix/Linux) 版本