Thứ hai, 21/04/2014 | 00:00 GMT+7

Cách cài đặt kho lưu trữ trình soạn nhạc tùy chỉnh trên Ubuntu


Trong hướng dẫn này, ta sẽ cài đặt repository Composer tùy chỉnh. Điều này nghĩa là bạn có thể lưu trữ các gói riêng tư của bạn và sử dụng chúng trong file composer.json của bạn.

Composer là một công cụ quản lý phụ thuộc PHP cho phép bạn chỉ định những thư viện mà dự án của bạn cần và nó sẽ tự động cài đặt chúng cho bạn. Để biết thêm thông tin về Composer và cách sử dụng chung, vui lòng xem bài viết này .

Có hai loại repository tùy chỉnh: SatisPackagist . Satis là một trang tĩnh, nghĩa là nó tạo ra các file JSON và HTML và đó là một trang web tĩnh. Packagist là mã của packagist.org và do đó là một công cụ rất tiên tiến bao gồm thống kê và tìm kiếm. Trong hướng dẫn này, bạn sẽ được hướng dẫn cách cài đặt cả hai.

Ở đây ta giả sử bạn biết Composer là gì và cách sử dụng nó. Nên cài đặt Satis hoặc Packagist (không phải cả hai).

Yêu cầu

Hài lòng

Như đã nói, Satis là một repository tĩnh. README của repository GitHub tuyên bố như sau:

Nó sử dụng các file composer.json nào làm đầu vào và kết xuất tất cả các gói bắt buộc (theo ràng buộc version của chúng) vào file Kho lưu trữ của Composer .

Việc cài đặt Satis rất dễ dàng:

cd /var/www/
curl -sS https://getcomposer.org/installer | php
php composer.phar create-project composer/satis --stability=dev --keep-vcs

Bây giờ tất cả những gì cần làm là thêm repository và tạo trang web tĩnh. Để thực hiện việc này, hãy tạo file satis.json trong / var / www với nội dung sau (sử dụng nano /var/www/satis.json để chỉnh sửa file ):

{
    "name": "My Repository",
    "homepage": "http://YOUR_IP",
    "repositories": [
        { "type": "vcs", "url": "https://github.com/symfony/yaml" },
        { "type": "vcs", "url": "https://github.com/symfony/HttpFoundation"
}
    ],
    "require-all": true
}

Trong file này, ta đặt tên cho repository , đặt trang chủ (phải được đặt thành root web từ nơi lưu trữ Satis) và một số repository được chỉ định. Đối với ví dụ này, tôi đã sử dụng 2 thành phần Symfony2. Bây giờ ta có thể tạo các trang web tĩnh:

php satis/bin/satis build satis.json .

Sử dụng các ví dụ này, bạn sẽ mất khá nhiều thời gian vì các kho này có nhiều version . Bạn có thể cần phải xác thực đối với GitHub, vì Composer sử dụng API GitHub có giới hạn về việc sử dụng theo mặc định. Trường hợp này cũng được mô tả trong phần Khắc phục sự cố trên trang web của Composer :

Do giới hạn tốc độ của GitHub đối với API của họ, nên có thể xảy ra trường hợp Composer nhắc xác thực yêu cầu tên user và password của bạn để nó có thể tiếp tục công việc của bạn .

Nếu bạn không muốn cung cấp thông tin đăng nhập GitHub của bạn cho Composer, bạn có thể tạo mã thông báo theo cách thủ công bằng quy trình sau:

  1. Tạo mã thông báo OAuth trên GitHub. Đọc thêm về điều này.
  2. Thêm nó vào cấu hình đang chạy composer config -g github-oauth.github.com <oauthtoken> Bây giờ Composer sẽ cài đặt / cập nhật mà không cần yêu cầu xác thực.

Khi Composer hoàn tất, bạn có thể truy cập http: // YOUR_IP . Điều này sẽ hiển thị tất cả các gói và version đã được thêm vào.

Khi nào một trong các kho được cập nhật, lệnh ta sử dụng để tạo các trang web sẽ được chạy. Bạn cũng có thể sử dụng cron job cho việc này, nhưng điều đó đã được đề cập trong hướng dẫn này .

Người đóng gói

Bây giờ, ta sẽ bắt đầu cài đặt Packagist. Packagist là một ứng dụng Symfony2 nghĩa là nó có khá nhiều phụ thuộc. Bài viết này giả định bạn đang sử dụng một bản cài đặt mới, vì vậy KHÔNG nên cài đặt Satis. Như đã nêu trước đây, chỉ nên cài đặt một trong hai.

Đầu tiên, tất cả các yêu cầu phải được cài đặt.

Một trong những yêu cầu là Redis , một server lưu trữ database . Thực hiện các lệnh sau để cài đặt Redis:

sudo apt-get update
sudo apt-get -y install build-essential tcl8.5
cd /opt
wget http://download.redis.io/releases/redis-2.8.7.tar.gz
tar xzf redis-2.8.7.tar.gz
mv redis-2.8.7 redis
cd redis

Redis đã download này. Bây giờ ta nên biên dịch và cài đặt nó:

make
sudo make install
cd utils

Lệnh sau cài đặt server :

sudo ./install_server.sh

Bạn có thể nhấn enter cho mọi câu hỏi bạn nhận được, nghĩa là mặc định sẽ được sử dụng, điều này rất tốt cho cài đặt này. Cuối cùng, làm cho nó tự động khởi động:

sudo update-rc.d redis_6379 defaults

Kiểm tra xem nó có hoạt động không bằng cách thực thi:

redis-cli ping

Nếu nó phản hồi bởi PONG , cài đặt của bạn hoạt động tốt.

Một yêu cầu khác là Solr : một công cụ tìm kiếm. Để cài đặt phần mềm này, trước tiên hãy cài đặt Java:

sudo apt-get -y install openjdk-7-jdk
mkdir /usr/java

Nếu bạn đang sử dụng Server 64-bit (hầu hết mọi người sẽ như vậy), bạn nên thực hiện lệnh sau:

ln -s /usr/lib/jvm/java-7-openjdk-amd64 /usr/java/default

Nếu bạn đang sử dụng hệ thống 32 bit, bạn nên thực hiện lệnh sau:

ln -s /usr/lib/jvm/java-7-openjdk-i386 /usr/java/default

Sau đó, download Solr:

cd /opt
wget http://archive.apache.org/dist/lucene/solr/3.6.2/apache-solr-3.6.2.tgz
tar -xvf apache-solr-3.6.2.tgz
cp -R apache-solr-3.6.2/example /opt/solr
cd /opt/solr
sudo wget -O /etc/default/jetty
https://gist.githubusercontent.com/koesie10/93cd2f2ab68471c34a25/raw/jetty
sudo wget -O /opt/solr/etc/jetty-logging.xml
https://gist.githubusercontent.com/koesie10/1070b285b45fb9de652c/raw/6adbb2d54455de4a0adce44015a294b77795d298/jetty-logging.xml

Tiếp theo, ta có thể cài đặt user Solr và khởi động tự động:

sudo useradd -d /opt/solr -s /sbin/false solr
sudo chown solr:solr -R /opt/solr
sudo wget -O /etc/init.d/jetty http://svn.codehaus.org/jetty/jetty/branches/jetty-6.1/bin/jetty.sh
sudo chmod a+x /etc/init.d/jetty
sudo update-rc.d jetty defaults

Bước cuối cùng là khởi động lại Solr:

sudo /etc/init.d/jetty restart

Để kiểm tra xem Solr có hoạt động hay không, hãy truy cập http://YOUR_IP:8983/solr trong trình duyệt của bạn. Nếu điều này đưa ra giao diện quản trị, thì quá trình cài đặt của bạn đã thành công.

Ta cũng nên cấu hình Apache và PHP một cách chính xác:

sudo a2enmod rewrite
sudo apt-get -y install php5-intl php5-curl acl git

Đến đây bạn có thể bắt đầu cài đặt thực sự của Packagist. Để bắt đầu, hãy thực hiện các lệnh sau:

cd /var/www/
rm index.html info.php
git clone https://github.com/composer/packagist .
curl -sS https://getcomposer.org/installer | php

Đầu tiên, tạo database bằng cách mở dòng lệnh mysql:

mysql

Bạn có thể được yêu cầu xác thực nếu bạn đã đặt password cho user root , điều này được khuyến khích . Tạo một user có tên packagist và chỉ định password (thay đổi password your_password thành một thứ an toàn hơn):

CREATE USER 'packagist'@'localhost' IDENTIFIED BY 'your_password';
GRANT USAGE ON * . * TO  'packagist'@'localhost' IDENTIFIED BY
'your_password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0
MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS  `packagist`;
GRANT ALL PRIVILEGES ON  `packagist` . * TO  'packagist'@'localhost';
exit;

Điều này cũng sẽ tạo ra một database được gọi là packagist .

Bây giờ sao chép các parameters.yml file .yml .dist vào tham số.yml:

cp app/config/parameters.yml.dist app/config/parameters.yml

Bây giờ ta nên chỉnh sửa file cho phù hợp với nhu cầu của bạn :

nano app/config/parameters.yml

File nên được thay đổi để phù hợp với nhu cầu của server .

Các tùy chọn đầu tiên là các tham số database *. Họ đang tự mô tả; chúng có thể được điền vào một cách dễ dàng. Nếu bạn đã làm theo các bước trên để tạo database , bạn có thể để ` trình điều khiển cơ sở dữ liệu to pdo mysql , just like server cơ sở dữ liệu which can be left at the default localhost which can be left at the default . The database and user cơ sở dữ liệu should be set to packagist and the database_password` phải được đặt thành password bạn đã đặt trước đó.

Phần tiếp theo là về gửi thư. Bạn có thể cần sử dụng SMTP hoặc sendmail làm mailer_transport , nhưng điều đó phụ thuộc vào server gửi thư của bạn. Khi bạn sử dụng SMTP, tất cả các chi tiết khác về SMTP cũng phải được điền vào.

Tham số packagist_host là bắt buộc, vì vậy hãy đặt nó thành domain được kết nối với Server hoặc sử dụng IP của Server. Sau khi đã điền xong packagist_host , hãy bỏ ghi chú hai tham số sau. Nếu bạn không sử dụng HTTPS, router.request_context.scheme nên được đặt thành http .

Nếu các bước trên được thực hiện đúng, bạn không cần thay đổi thông số redis_dsn . ga_key locale cũng có thể được để mặc định và ga_key không bắt buộc. Tuy nhiên, github.client_idgithub.client_secret được khuyến khích điền vào. Để làm được điều này, trước tiên hãy đăng ký một ứng dụng mới trên GitHub . URL gọi lại có thể để trống. Sau khi ứng dụng đã được đăng ký, hãy sao chép ID khách hàng vào github.client_id . Điều tương tự cũng nên được thực hiện đối với Bí mật khách hàng.

Điều tiếp theo cần được điền vào là secretremember_me.secret . Chúng có thể được điền ngẫu nhiên hoặc có thể là một chuỗi ngẫu nhiên được tạo tại thebitmill.com . Dấu câu nên được bỏ chọn trong trình tạo vì nó có thể gây ra sự cố với YAML.

Phần còn lại của các tham số có thể được để ở giá trị mặc định của chúng. Bây giờ thực hiện các lệnh sau:

php composer.phar install
app/console doctrine:schema:create
app/console cache:clear --env=prod
app/console assets:install web
mkdir home
sudo chown www-data:www-data -R /var/www/home
APACHEUSER=`ps aux | grep -E '[a]pache|[h]ttpd' | grep -v root | head -1 |
cut -d\  -f1`
sudo setfacl -R -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs

Điều duy nhất còn lại là cài đặt một VirtualHost chính xác. Chỉnh sửa /etc/apache2/sites-available/default :

nano /etc/apache2/sites-available/default

Thay đổi DocumentRoot /var/www thành DocumentRoot /var/www/web . Thêm một dòng bên dưới DocumentRoot với nội dung SetEnv HOME /var/www/home . Sau đó thay đổi <Directory /var/www> thành <Directory /var/www/web> . Tiếp theo, đặt một dấu trừ trước Chỉ mục để dòng trở thành như thế này:

Options -Indexes FollowSymLinks MultiViews

Sau đó thay đổi dòng sau đó từ AllowOverride None thành AllowOverride All . Cuối cùng, khởi động lại Apache:

sudo service apache2 restart

Bây giờ, ta cần cài đặt Solr một cách chính xác. Chỉnh sửa /opt/solr/solr/solr.xml :

nano /opt/solr/solr/solr.xml

Trong file này, hãy tìm collection1 và thay thế nó bằng packagist , để file có dạng như sau:

<?xml version="1.0" encoding="UTF-8" ?>


<solr persistent="false">


  <cores adminPath="/admin/cores" defaultCoreName="packagist">
    <core name="packagist" instanceDir="." />
  </cores>
</solr>

Bây giờ, schema.xml của schema.xml sẽ được sử dụng trong Solr. Thực hiện các lệnh sau:

rm /opt/solr/solr/conf/schema.xml
cp /var/www/doc/schema.xml /opt/solr/solr/conf/schema.xml
sudo /etc/init.d/jetty restart

Cài đặt của bạn hiện có thể được truy cập tại http://YOUR_IP/ . Nó sẽ hoạt động giống như Packagist. Khi cài đặt của bạn cần hỗ trợ thêm hệ thống kiểm soát version (VCS), hãy cài đặt những hệ thống sau:

sudo apt-get -y install subversion
sudo apt-get -y install mercurial

Đồng thời cài đặt cron job cho các lệnh sau (khoảng thời gian được khuyến khích là 1 phút, xem hướng dẫn này để cài đặt cron job):

/var/www/app/console packagist:update --no-debug --env=prod
/var/www/app/console packagist:dump --no-debug --env=prod
/var/www/app/console packagist:index --no-debug --env=prod

Khi nào một gói mới được thêm vào, nó sẽ không được Solr lập index tự động; cho rằng các lệnh trên thực sự nên được cài đặt như một công việc cron hoặc được thực hiện theo cách thủ công mỗi khi có gì đó thay đổi. Tùy chọn đầu tiên có lẽ là dễ nhất.

Một số thứ không hoạt động ngay lập tức như trang thống kê. Packagist nên cập nhật khoảng 2 ngày trước đó để nó không báo lỗi 500 nữa.

Sử dụng repository của bạn

Bây giờ có thể sử dụng Composer của bạn . Để thực hiện việc này, hãy thêm phần repositories sau vào composer.json:

{
    "repositories": [
     {
     "type": "composer",
     "url": "http://YOUR_IP/"
     }
    ],
    // these are just examples of requirements, you don't actually need
them (delete this comment as comments are officially not supported in JSON)
    "require": {
        "symfony/yaml": "dev-master",
        "symfony/http-foundation": "dev-master"
    }
}

<div class = “author”> Được gửi bởi: <a href=p>http://koenv.com[> Koen Vlaswinkel </a> </div>


Tags:

Các tin liên quan

Cách cài đặt và sử dụng Fish Shell trên VPS Ubuntu
2014-04-09
Cách thiết lập hệ thống tệp phân tán Tahoe-LAFS trên server Ubuntu 14.04
2014-04-03
Cách cài đặt Hadoop trên Ubuntu 13.10
2014-03-20
Cách cài đặt ProcessWire trên VPS Ubuntu
2014-03-20
Cách cài đặt Hadoop trên Ubuntu 13.10
2014-03-20
Cách cài đặt HHVM (Máy ảo HipHop) trên VPS Ubuntu 13.10
2014-03-18
Cách thiết lập server cloud Ubuntu cho ứng dụng web Python
2014-02-25
Cách cài đặt và bắt đầu với CMS Mezzanine trên Django trên Ubuntu
2014-02-25
Cách cài đặt Django CMS phiên bản 3 Beta 3 với Django 1.6 trên Ubuntu
2014-02-25
Làm thế nào để Dockerise và triển khai nhiều ứng dụng WordPress trên Ubuntu
2014-02-13