Рубрики
Uncategorized

Создайте серверную среду Linux, которая поддерживает как PHP, так и ASP.NET

Автор оригинала: David Wong.

Примечание: Эта статья является только личным методом исследования и разведки, может быть, не слишком строгим, если вы совершите какие-либо профессиональные ошибки, но также надеюсь, что офицеры исправят, спасибо. ()

Особая благодарность: Чистое небо Это так хлопотно-задавать вам каждый раз, когда вы встречаетесь с какими-либо вопросами. Эта статья состоит из Аши Тошия Оригинального текста, который вы можете использовать в любых учебных и коммуникационных целях, а не для какой-либо формы коммерческого использования. Если вам нужно воспроизвести, пожалуйста, укажите информацию об авторских правах и источник оригинального автора.

Краткое описание окружающей среды

Локальная отладка

Операционная система: Ubuntu Server x64 14.04.1 LTS Ссылка Официальное примечание Ресурсы процессора: Intel Core i7 3610QM (VirtualBox применяется только к одному ядру) Ресурсы памяти: 512 МБ DDR3 1600 МГц Ресурсы памяти: 10 ГБ механический жесткий диск ноутбука

На стороне сервера

Операционная система: Ubuntu 14.04 X86 Ресурсы процессора: Процессор Intel (R) Xeon (R) E31245 @ 3,30 ГГц (4 ядра) Ресурсы памяти: 524288 кБ (512 МБ) Ресурсы хранилища: SSD 20 ГБ

После инициирования HTTP – запроса он проходит через Nginx, если это PHP-сайт, он перенаправляется в Apache 2, а если это ASP. ЧИСТЫЙ сайт, он перенаправляет к Иисусу.

Настройка ASP.NET Часть (Jexus) Окружающая среда

Установите Mono

Ссылка: Как установить mono в ОС Ubuntu

I. Обновление системы:

sudo apt-get update
sudo apt-get upgrade

2. Создайте среду компилятора:

sudo apt-get install build-essential
sudo apt-get install automake autoconf
sudo apt-get install bison gettext libtool libglib2.0-dev libfreetype6-dev libfontconfig-dev

3. Установка libgdiplus, mono и других библиотечных файлов, необходимых для компиляции среды

sudo apt-get install libtiff5-dev
sudo apt-get install libgif-dev libtiff4-dev libpng12-dev libexif-dev libx11-dev libxft-dev 
sudo apt-get install libjpeg-dev

Примечание: Этот шаг отличается от первоначального. Я пересмотрел его в соответствии с подсказкой об ошибке.

4. Загрузка и распаковка исходного файла:

Скачать:

wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
wget http://download.mono-project.com/sources/mono/mono-3.0.12.tar.bz2

Примечание: (2015/10/13) Последнее издание libgdiplus-3.12.tar.gzmono-4.2.1.60.tar.bz2 。 Мой сервер установлен в последней версии, приведенный выше код вставлен вместе с оригинальной справочной статьей.

Распакуйте: (Перейдите на соответствующую версию, которую вы скачали)

tar jvxf libgdiplus-2.10.tar.bz2
tar jvxf mono-3.0.12.tar.bz2

// If you download a new version and use gzip (tar. gz), use the following command to extract it.

tar zxvf libgdiplus-3.12.tar.gz

Установка Libgdiplus и Mono:

Установите libgdiplus

cd libgdiplus-3.12
./configure --prefix=/usr
make
sudo make install
cd ..

Возникшие проблемы: gdiplus-private.h:33:31: фатальная ошибка: freetype/tttables.h: Такого файла или каталога нет Справочные ресурсы: Сервер Ubuntu (64-разрядная версия Ubuntu 14.04 LTS) установка libgdiplus 2.10.9 запись об ошибке Конкретная операция выглядит следующим образом:

Эта ошибка означает, что создание ссылки/usr/X11/include/freetype не удалось, потому что мы не смогли найти свободный тип, но мы нашли свободный тип 2, поэтому давайте создадим ссылку. (Решение с приведенной выше ссылкой показало, что разрешений было недостаточно, и поэтому добавлено sudo 。)

sudo ln -s /usr/include/freetype2 /usr/include/freetype

Примечание: Ссылки в оригинальной статье /usr/lib64/libglib-2.0.so.0: не удалось прочитать символы: Недопустимая операция Проблема, потому что я с ней не сталкивался, поэтому пропустите, если вы столкнетесь с этой проблемой, вы можете обратиться к приведенному выше решению по ссылочной ссылке.

Возникшие проблемы: Пакет "каир" не найден Справочные ресурсы: Загрузка Каира

sudo apt-get install libcairo2-dev

Установите Mono

cd mono-4.2.1.60
./configure --prefix=/usr
make
sudo make install
cd ..

Установите Nexus

wget http://www.linuxdot.net/down/jexus-5.5.3.tar.gz
tar -zxvf jexus-5.5.3.tar.gz
cd jexus-5.5.3
sudo ./install

Успешно, на этот раз не было никаких проблем, Иисус установил в это время. Затем вам нужно настроить сайты загрузки и сайты по умолчанию для Иисуса. Эта часть оставлена до конца.

Настройка среды части PHP (Apache 2)

Часть Apache + PHP не знает, сколько раз нужно настраивать, что менее сложно.

Установите Apache 2

sudo apt-get install apache2

Откройте браузер, чтобы ввести тест “адрес сервера” для доступа к странице по умолчанию Apache 2, вы можете увидеть страницу по умолчанию Apache2 Ubuntu , которая означает, что Apache 2 был успешно установлен, а затем будет установлен PHP.~

Установите PHP

sudo apt-get install php5

Другие конфигурации

sudo apt-get install libapache2-mod-php5
// Note: The installation above is for Apache 2 to install PHP5 support.

sudo /etc/init.d/apache2 restart

Ошибка:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Справочные ресурсы: Ubuntu 14.04 Перезапуск службы Apache 2 Появляется AH00558… В файле конфигурации/etc/apache2/apache2.conf добавьте:

ServerName localhost

Перезагрузите Apache 2 после внесения изменений

Проверьте, правильно ли работает Apache + PHP

sudo vim /var/www/html/test.php

вход

Посетите: Http://server ip/test.php Если на дисплее отображается Привет, Rmlegno , Это означает, что конфигурация выполнена успешно.

Настройка Nginx

Перед настройкой Nginx нам необходимо внести некоторые изменения в Apache 2 и Jesus. По умолчанию все они используют порт 80. Однако нам нужно переслать 80 в Nginx, в Apache 2, если это PHP-сайт, Иисусу, если это ASP. СЕТЕВОЙ сайт. Я считаю, что никто не может использовать PHP и ASP. СЕТЬ в то же время. Если это так, мы можем перенести его. Отправьте его Иисусу и разрешите Jexus FastCGI использовать PHP, который здесь подробно не обсуждается.

Измените порт Apache 2 по умолчанию

sudo vim /etc/apache2/ports.conf

возьмите Listen 80 Измените на Listen 8081 Или другие порты, которые вы считаете подходящими, если они не конфликтуют с другими портами.

Затем измените порт сайта по умолчанию

sudo vim /etc/apache2/sites-available/000-default.conf

Первая строка <Виртуальный хост *:80> Изменить на <Виртуальный хост *:8081>

Конечно, 8081 здесь не уверен, но это должно соответствовать приведенным выше модификациям. P.S. равносильно бессмыслице. В любом случае, после настройки сайта по умолчанию для удаления, вам следует обратить внимание на порт при настройке нового сайта.

Перезапустите Apache 2, чтобы проверить, можно ли получить доступ к нему с порта 8081 вместо порта 80.

Http://ServerName:80//ServerName is replaced by domain name or server IP, and the test result should be "the connection to the server is reset when loading the page". "(Huo Hu)
Http://ServerName:8081///At this point the test results should be Apache 2 default page It works.

Измените порт по умолчанию, используемый Иисусом, и добавьте Иисуса для автоматической загрузки

Иисус, похоже, не использует порты по всему миру. Перейдите непосредственно к конфигурации сайта и измените порт сайта по умолчанию на 8082. Это также может быть порт, с которым вы не чувствуете конфликта. Просто обратите внимание на использование того же порта при последующем добавлении сайта.

sudo vim /usr/jexus/siteconf/default

После открытия есть один очень заметный. порт=80 Выше измените значение на порт=8082 Сохранить и выйти.

Добавьте Иисуса для автоматической загрузки

Причина, по которой мы не добавили загрузку прямо сейчас, заключается в том, что все используют порт 80, поэтому порт будет занят и загрузка не будет. Теперь разделите порты Jesus и Apache 2, а затем добавьте загрузку Jesus.

sudo vim /etc/init.d/rc.local

Добавить в конце документа

/usr/jexus/jws start

Затем выполните перезагрузку sudo Перезагрузите сервер и посмотрите, правильно ли работает служба.

После перезагрузки запустите:

sudo /usr/jexus/jws status

Если показано, что Иисус бежит, то это удается. Затем перейдите в браузер для тестирования:

Http://ServerName:80//ServerName is replaced by domain name or server IP, and the test result should be "the connection to the server is reset when loading the page". "(Huo Hu)
Http://ServerName:8081///At this point the test results should be Apache 2 default page It works.
Http://ServerName:8082/// At this point, the test results should be the default page of Jexus or the 404 error reported by Jexus.

Успешно выполнено, и тогда это Nginx!

Установка и настройка Nginx

sudo apt-get install nginx

О конфигурации

После ознакомления с несколькими статьями и руководством по прозрачным облакам в широком небе конфигурация обратного прокси-сервера Nginx, вероятно, выглядит следующим образом: css |/jpg /js /png | gif Статическое содержимое обрабатывается непосредственно Nginx. php Дождитесь содержимого PHP, обратного прокси-сервера на порт 8081, то есть Apache 2, для обработки Apache 2. aspx |/cshtml Дождитесь ASP. ЧИСТЫЙ контент, обратный прокси-сервер на порт 8082, то есть Иисус.

P.S. Для тех, кто использует PHP, статический контент передается в Nginx. Все, что не является статичным, заменяется Apache 2 Это означает, что мы все еще можем настраивать псевдостатику и так далее, как мы делали с Apache 2. Аналогично, для сайтов, использующих ASP.NET За исключением статического контента, все это обрабатывается Jexus 。 Лично следует избегать Apache2 и Иисуса. По крайней мере, я чувствую, что сейчас все испорчу. QAQ

Наконец, давайте поговорим об этом.

Таким образом, первая среда Nginx и последняя среда Apache + Jesus готовы. Если вам нужно использовать другие среды, вы можете настроить сервер самостоятельно, настроить его на другие порты, а затем добавить обработку защиты от генерации в nginx. Примечания по конфигурации Nginx (будут добавлены)