Code Monkey home page Code Monkey logo

plugindir's Introduction

Mozilla Plugin Directory

Prerequisites

  • Apache
  • PHP 5.2+ ** mcrypt ** gettext
  • MySQL 5+
  • Memcached (optional)

Example Ubuntu 9.10 package names apache2 mysql-server mysql-client php5 php5-mcrypt php-gettext php5-gd php5-mysql memcached php5-cli php5-memcache

Install

  • Note: In general, files ending in "-dist" are meant to be copied to a local version without "-dist" and modified for your installation.

  • Create a MySQL database using application/config/sql/current.sql as schema

  • Copy htdocs/htaccess-dist to htdocs/.htaccess

    • Edit htdocs/.htaccess to adjust RewriteBase if site base URL path is not '/'
      • e.g. RewriteBase /2009/11/plugindir/htdocs/
    • Optionally, you can do away with the .htaccess and move the rules to your main Apache config.
  • For a development installation, copy index.php-dev-dist to index.php

    • This should leave error display and logging enabled
  • For a production/staging installation, copy index.php-prod-dist to index.php

    • This should disable error display and logging, along with settings specified below.
  • Set up Apache config something like the following for a virtual host:

      <VirtualHost *:80>
          ServerName dev.plugindir.mozilla.org
          DocumentRoot {plugindir path}/htdocs/
          ErrorLog {plugindir path}/logs/error_log
          TransferLog {plugindir path}/logs/access_log
          <Directory {plugindir path}/htdocs/>
              AllowOverride all
              Order allow,deny
              Allow from all
          </Directory>
      </VirtualHost>
    
  • Copy application/config/config-local.php-dist to application/config/config-local.php

    • Change $config['core.site_protocol'] to 'http' or 'https', accordingly.
    • Change $config['core.site_domain'] to match installation domain and base path.
    • Modify $config['database.default'] to reflect your primary database connection
    • Modify $config['database.shadow'] to reflect your read shadow database connection
      • If there's no read shadow, delete the 'read_shadow' setting from the primary database config.
    • If memcached is available:
      • Delete the existing $config['cache.default']
      • Uncomment the following $config['cache.default'] settings and associated memcache configurations settings.
      • Modify the memcache settings accordingly
    • For production / staging make these changes:
      • core.internal_cache = 60
      • core.internal_cache_key = (pick some random key, eg 'abs%^&27Abh11@')
      • core.log_threshold = 0
      • core.display_errors = FALSE
      • core.render_stats = FALSE
  • Make these directories exist and are writable by Apache:

    • application/logs
    • application/cache
    • application/cache/twig
  • Run this to import initial plugin definitions:

    • php htdocs/index.php util/import plugins-info/*json
      • You may need to do this as the Apache user, or another user in same group.
      • This will attempt to write to the same logs, caches, etc as the web app.
      • Watch application/logs/(date).log.php for errors
  • Creating the initial admin user:

    • php htdocs/index.php util/createlogin admin [email protected] admin

      • First argument is the login name (ie. 'admin')
      • Second argument is a valid email address (ie. '[email protected]')
      • Third argument is the access role for the user (ie. admin, editor, member)
    • Note the password generated and displayed on a successful new login creation:

      Profile ID 10 created for 'admin4' Password: wxg3qav

  • (optional) To run tests (requires PHP CLI):

    • Create another MySQL database just for tests
    • Copy config-testing.php-dist to config-testing.php
    • Modify config-testing.php as above, substituting test database details
    • To list available test groups:
      • php htdocs/index.php phpunit/group
    • Try running the plugin model tests:
      • php htdocs/index.php phpunit/group/models.plugindir.plugin

Developer Notes

Localization

  • To update locales after code / template changes:

    • php htdocs/index.php util/compiletemplates
    • ./bin/extract-po.sh
  • To compile messages after localization work:

    • ./bin/compile-mo.sh

Search API Usage

  • See: https://wiki.mozilla.org/PFS2#Request_Parameters
  • Example query:
    • curl -sD - 'http://dev.plugindir.mozilla.org/pfs/v2?mimetype=application%2Fx-shockwave-flash+application%2Ffuturesplash&appID=%7Bec8030f7-c20a-464f-9b0e-13a3a9e97384%7D&appRelease=3.5.5&appVersion=20091102134505&clientOS=Intel+Mac+OS+X+10.6&chromeLocale=en-US'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.